java - ScrollView 没有在片段中滚动或无法正常工作
问题描述
我是 android 的新手,我正在开发一个应用程序,但我有一个让我发疯的错误。问题是它不会完全滚动,它会在屏幕外留下一个按钮,因此看不到它。Scrollview 在每个活动中都可以正常工作,但在选项卡式活动中不起作用。android:layout_height="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>
解决方案
您不需要将滚动视图作为不需要的根布局。但是您可能需要向Scroll View添加更多属性,例如android:scrollbars="vertical"
和android:fillViewport="true"
。你也可以使用像你一样的方法,只滚动其他内容,这样你总是在屏幕上可见,只有你的内容会滚动Button
。Scroll View
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
你可以试试这个属性android:isScrollContainer="false"
里面Scroll View
。
如果这不起作用,请尝试使用NestedScrollView
in Fragment
。
<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>
推荐阅读
- azure-pipelines - Azure Pipelines - 跨阶段的相同托管代理
- c++ - 检查类型是否为偏序
- reactjs - Jest 在用 jest 测试 react-native 时遇到了一个意外的令牌
- javascript - 从 Cognito 触发器获取数据
- javascript - puppeteer UnhandledPromiseRejectionWarning:错误:页面崩溃
- unity3d - Oculus Quest 的 Unity XR 输入设备特性始终无
- c++ - C++ 字节、sprintf、十六进制。将字节转换为二进制
- c++ - 尝试使用冒泡排序按字母顺序对字符串数组进行排序,但排序返回的是数组的倒数
- flutter - 颤振,火力基地。我想显示除电子邮件和密码以外的注册表单数据并连接到唯一的 uid
- javascript - 当用户添加到订单时,无法将商品推送到购物车