java - ScrollView 未在 fragment 中滚动或无法正常工作

标签 java android android-layout android-fragments

我是 android 的新手,正在开发应用程序,但我遇到了一个让我抓狂的错误。问题是它不会完全滚动,它会在屏幕外留下一个按钮,因此无法看到。 Scrollview 在每个 Activity 中都能正常工作,但在选项卡式 Activity 中不起作用。 此代码 android:layout_height="match_parent" 如果我将高度 match-parent 更改为 500dp 或任何整数值,它会正常工作。我想知道为什么 match-parent 不起作用。

我已经尝试了对这个问题的所有建议修改,但仍然没有修改。

这是我的 XML 文件

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/back"
android:paddingBottom="10dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="5dp"
tools:context="com.example.sahil.bloodbank.first"
>

<ScrollView
    android:id="@+id/sc1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    android:scrollbars="vertical"
>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

<TextView
    android:id="@+id/name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#000000"
    android:textSize="20sp"
    android:text="Welcome,"/>

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@mipmap/wall1"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:id="@+id/desc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/imageView"
        android:gravity="center"
        android:text="@string/data"
        android:textAlignment="gravity"
        android:textColor="@color/data"
        android:textSize="17sp" />

    <TextView
        android:id="@+id/data"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/note"
        android:textColor="@color/data"
        android:textStyle="bold"
        android:layout_marginTop="40dp"
        android:layout_below="@+id/desc"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:id="@+id/donate"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:text="I want to Donate Blood"
        android:textColor="@color/text"
        android:textSize="18sp"
        android:layout_below="@+id/data"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="14dp"
        />

</LinearLayout>
</ScrollView>
</RelativeLayout>

最佳答案

您不需要采用 ScrollView ,因为不需要根布局。但是您可能需要向 Scroll View 添加更多属性,例如 android:scrollbars="vertical"android:fillViewport="true"。您也可以使用方法,例如在 Scroll View 之外使用 Button 并且只滚动其他内容,这样您的 Button 始终只会在屏幕上可见内容将滚动。

喜欢

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@mipmap/ic_launcher"
    android:paddingBottom="10dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="5dp">

    <ScrollView
        android:layout_above="@+id/donate"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:scrollbars="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Welcome,"
                android:textColor="#000000"
                android:textSize="20sp" />

            <ImageView
                android:id="@+id/imageView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                app:srcCompat="@android:drawable/ic_menu_share" />

            <TextView
                android:id="@+id/desc"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/imageView"
                android:gravity="center"
                android:text="Description DescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescription"
                android:textAlignment="gravity"
                android:textColor="@color/colorPrimary"
                android:textSize="17sp" />

            <TextView
                android:id="@+id/data"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_below="@+id/desc"
                android:layout_marginTop="40dp"
                android:text=" Note DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote DataNote Data"
                android:textColor="@color/colorPrimary"
                android:textStyle="bold" />



        </LinearLayout>
    </ScrollView>

    <Button
        android:id="@+id/donate"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="10dp"
        android:background="@color/colorPrimary"
        android:text="I want to Donate Blood"
        android:textColor="@color/colorPrimary"
        android:textSize="18sp" />
</RelativeLayout>

Fragment 中,您可以在 Scroll View 中尝试此属性 android:isScrollContainer="false"

如果这不起作用,请尝试在 Fragment 中使用 NestedScrollView

<android.support.v4.widget.NestedScrollView
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:fillViewport="true"
     app:layout_behavior="@string/appbar_scrolling_view_behavior" >


</android.support.v4.widget.NestedScrollView>

关于java - ScrollView 未在 fragment 中滚动或无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51055508/

相关文章:

java - 如何搜索子节点以查看给定值是否存在

android - ListView快速滚动条bug

android - 在这种情况下,用户可以清除共享首选项但不能清除数据库

android - picasso 加载带有水平线的图像

android - 如何更改底部导航上的非 Activity 颜色?

android - 在一个 Activity 中的 fragment 之间导航

Java8 : About order of Map elements returned by Collectors. 分组依据

java - 重写以下代码,即使循环执行 1,000 次,也只执行一次算术运算?

java - 我的 setText() 方法的 actionlistener 中出现错误,因为它没有用字符串定义

android - 如何降低行高。 (表格布局>表格行)