Android 如何限制将图像(在scrollview中)滚动到空白区域?

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

我是Android Studio和Android开发的初学者。我希望scrollview只允许滚动到图像的末尾,但它会滚动到空白处。我尝试了很多东西,但我只是不明白我哪里出了问题

,,

以下是XML代码:

<?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>