ScrollView屬性fillViewport解決android佈局不能撐滿全屏的問題
ScrollView中的元件設定android:layout_height="fill_parent"不起作用的解決辦法
在ScrollView中新增一個Android:fillViewport="true"屬性就可以了。顧名思義,這個屬性允許 ScrollView中的元件去充滿它。 當ScrollView沒有fillVeewport=“true”時, 裡面的元素(比如LinearLayout)會按照wrap_content來計算(不論它是否設了"fill_parent"),而如果LinearLayout的元素設定了fill_parent,那麼也是不管用的,因為LinearLayout依賴裡面的元素,而裡面的元素又依賴LinearLayout,這樣自相矛盾.所以裡面元素設定了fill_parent,也會當做wrap_content來計算.
例子,在ScrollView下加入的元件,無論如何也不能自動擴充套件到螢幕高度。
佈局檔案。
<?xml version="1.0" encoding="utf-8"?>
<!-- 背景:藍色 -->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#0000ff" >
<!-- 背景:綠色 -->
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00ff00" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"
android:text="Hello
</TextView>
</LinearLayout>
</ScrollView>
效果圖。
儘管已經設定了android:layout_height="fill_parent",但是,整個LinearLayout和TextView還是不能充滿整個螢幕。
解決辦法。
在ScrollView中新增一個android:fillViewport="true"屬性就可以了。顧名思義,這個屬性允許ScrollView中的元件去充滿它。
修改後的效果圖。