Android 如何限制将图像(在scrollview中)滚动到空白区域?
我是Android Studio和Android开发的初学者。我希望scrollview只允许滚动到图像的末尾,但它会滚动到空白处。我尝试了很多东西,但我只是不明白我哪里出了问题 ,, 以下是XML代码:Android 如何限制将图像(在scrollview中)滚动到空白区域?,android,android-studio,scrollview,Android,Android Studio,Scrollview,我是Android Studio和Android开发的初学者。我希望scrollview只允许滚动到图像的末尾,但它会滚动到空白处。我尝试了很多东西,但我只是不明白我哪里出了问题 ,, 以下是XML代码: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fillViewport="true"
android:overScrollMode="never"
tools:context="com.android101.chroniclesofnarutouzumaki.MainActivity">
<RelativeLayout
android:id="@+id/relative_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:src="@drawable/naruto_uzumaki"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitStart"
android:id="@+id/naruto" />
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="25dp"
android:text="Never Give Up!" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/text1"
android:layout_marginEnd="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="438dp"
android:text="What to Add?" />
</RelativeLayout>
</ScrollView>
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:overScrollMode="never"
>
<RelativeLayout
android:id="@+id/relative_layout"
android:layout_width="match_parent"
android:background="@drawable/naruto_uzumaki"
android:layout_height="wrap_content">
<!-- <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitStart"
android:id="@+id/naruto" />
-->
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="25dp"
android:text="Never Give Up!" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/text1"
android:layout_marginEnd="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="438dp"
android:text="What to Add?" />
</RelativeLayout>
</ScrollView>
如果我了解您的需求,您需要将空白区域设置为固定高度或始终可见(text1、text2),并且仅滚动图像,如果是这种情况,您需要使用线性布局,并在其内部放置一个带有Weight 1的滚动视图,text1和text2为其提供高度环绕内容代码如下:
<?xml version="1.0" encoding="utf-8"?>
这将使图像以一种仍然可见文本1和文本2的方式拉伸,如果它大于此限制,您将能够滚动,然后在版面中获得额外空白的原因是在TextView中您提到了marginTop属性为android:Layout\u marginTop=“438dp”,并且您没有将adjustViewbounds设置为ImageView 更多关于图像的意图是在布局背景上显示,这意味着您可以将图像设置为相对布局的背景
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fillViewport="true"
android:overScrollMode="never"
>
<RelativeLayout
android:id="@+id/relative_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:src="@drawable/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/naruto"
android:adjustViewBounds="true"/>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="25dp"
android:text="Never Give Up!" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/text1"
android:layout_marginEnd="12dp"
android:layout_marginRight="12dp"
android:layout_alignParentBottom="true"
android:text="What to Add?" />
</RelativeLayout>
</ScrollView>
此问题已成功解决。刚刚在imageview中添加了“android:adjustViewBounds=“true”。只需为线性布局添加缺少的关闭标记
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fillViewport="true"
android:overScrollMode="never"
>
<RelativeLayout
android:id="@+id/relative_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:src="@drawable/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/naruto"
android:adjustViewBounds="true"/>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="25dp"
android:text="Never Give Up!" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/text1"
android:layout_marginEnd="12dp"
android:layout_marginRight="12dp"
android:layout_alignParentBottom="true"
android:text="What to Add?" />
</RelativeLayout>
</ScrollView>