当子视图比显示区大时,ScrollView能正常显示。但是,当子视图比显示区小时,ScrollView会自动缩小匹配子视图尺寸。这时就需要用到fillViewport属性。
<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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.fudd.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_parent"
android:orientation="vertical">
<TextView
android:text="@string/hello"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp">
<Button
android:text="Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"/><!-- 这行代码解决Android Studio 显示大写问题-->
</LinearLayout>
</ScrollView>
上述布局代码中,如果 TextView中 text文本够大,超过屏幕显示,则会正常。如果只是“hello world” 那么按钮控件 就会紧跟TextView控件 上来。
如果在加上ScrollView的fillViewport属性为true,按钮就会按预期效果显示在底部。
<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:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
tools:context="com.fudd.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_parent"
android:orientation="vertical">
<TextView
android:text="@string/hello"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp">
<Button
android:text="Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"/><!-- 这行代码解决Android Studio 显示大写问题-->
</LinearLayout>
</ScrollView>