我无法正确滚动ScrollView。它总是切断底部的内容,就好像它是正常的LinearLayout
。
我的代码:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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="fill_parent"
android:layout_height="match_parent"
android:fillViewport="true"
tools:context="com.android.dadiperpus.MainActivity">
我将LinearLayout
放入ScrollView
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/logo_stan"
android:orientation="vertical"
android:weightSum="10">
然后我将RelativeLayout放在LinearLayout
中 <RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal|center_vertical"
android:text="CONTOH BRO"
android:textSize="32sp" />
</RelativeLayout>
我在这里使用Gridlayout
<GridLayout
android:id="@+id/mainGrid"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="8"
android:alignmentMode="alignMargins"
android:columnCount="2"
android:columnOrderPreserved="false"
android:padding="14dp"
android:rowCount="3">
然后我将这些代码放在GridLayout
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_columnWeight="1"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_rowWeight="1"
app:cardCornerRadius="8dp"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/logo_stan" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pengantar Kepabeanan"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</android.support.v7.widget.CardView>
我已经尝试将ScrollView
包裹在LinearLayout
内,但它根本没有改变任何内容。
答案 0 :(得分:1)
我将LinearLayout放在ScrollView
中<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/logo_stan" android:orientation="vertical" android:weightSum="10">
此线性布局需要使用wrap_content
作为其高度。通过使用match_parent
,您表示您希望linearlayout只能与托管它的滚动视图一样高......这意味着它将切断所有&#34;可滚动的&# 34;内容。通过使用wrap_content
(或某些固定高度大于而不是滚动视图),您将在线性布局中拥有更多内容,而不是在一个屏幕上可见,然后滚动将按预期工作。
答案 1 :(得分:0)
在从线性布局,相对布局和网格布局的layout_weight中移除权重时,您的滚动视图将滚动(仅在内容超过屏幕大小的情况下)。为所有这些布局(相对布局和网格布局)赋予高度wrap_content而不是0dp。 实际上你的代码中发生了什么:你已经给出了线性布局的高度match_parent(等于屏幕大小)和权重10.然后你给出相对布局layout_weight = 2和网格布局的layout_weight = 8这意味着相对布局占据了屏幕的两个部分和网格布局占据了8个部分的屏幕。在这种情况下,您的内容永远不会超过屏幕尺寸,并且网格布局会尝试适合屏幕,因此,您的内容会在底部被切断。
希望,它会帮助你。
由于