關於ScrollView裡面包裹LinearLayout 設定權重 填充滿螢幕無效問題解決方法
阿新 • • 發佈:2019-01-24
最近在開發中遇到了這個問題 ScrollView在小屏手機裡面填滿了螢幕 但是在大屏裡面沒有填滿 下部有留白 打算讓最後一個按鈕停靠在螢幕最下端 裡面包裹LinearLayout 然後設定權重的 方式 但是沒有效果 卡了好久 各種找問題
最後在網上查到 當ScrollView裡的元素想填滿ScrollView時,使用"fill_parent"是不管用的,必需為ScrollView設定:android:fillViewport="true"。
當ScrollView沒有fillVeewport=“true”時, 裡面的元素(比如LinearLayout)會按照wrap_content來計算(不論它是否設了"fill_parent"),而如果LinearLayout的元素設定了fill_parent,那麼也是不管用的,因為LinearLayout依賴裡面的元素,而裡面的元素又依賴LinearLayout,這樣自相矛盾.所以裡面元素設定了fill_parent,也會當做wrap_content來計算.
<ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/tool_bar" android:layout_marginTop="10dp" android:background="@color/color_ffffff" android:fillViewport="true" android:scrollbars="none">