我想将布局权重分配给LinearLayout
内ScrollView
内的多个项目。但是,ScrollView
会忽略LinearLayout
weightSum
。
我的目标是将布局的权重除以2,1,1(总和为4),但这在ScrollView
内部无效。
如何解决此布局问题?
main.xml中
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="4">
<LinearLayout android:id="@+id/logo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="2"
android:background="#FFFFFF" />
<LinearLayout android:id="@+id/logo1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1"
android:background="#000000" />
<LinearLayout android:id="@+id/logobutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="1"
android:background="#4B4B4B" />
</LinearLayout>
</ScrollView>
答案 0 :(得分:159)
我以前遇到过这个问题。只需在ScrollView中使用android:fillViewport="true"
,它就会填满屏幕。
<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:fillViewport="true" >
答案 1 :(得分:2)
这不会像你做的那样有效。 ScrollView的子视图应设置为wrap_content
。如果您将其设置为fill_parent
,它将填充ScrollView的区域并且永不滚动,因为它不会大于ScrollView。
layout_weight
的想法是按比例填补特定区域。
您应该将所有子LinearLayouts layout_height
设置为wrap_content
或特定尺寸(以dp为单位),将父LinearLayout layout_height
设置为{ {1}}
如上所述,您需要删除其他
的xmlns:机器人= “http://schemas.android.com/apk/res/android”
如果它不是布局的根(第一)元素。
答案 2 :(得分:0)
根据我的经验,fillviewport=true
的工作有点奇怪。
我通过将LinearLayout
包装为另一个FrameLayout
布局来解决了这个问题。
我希望这会有所帮助。
答案 3 :(得分:0)
只需将其放在滚动视图中即可
android:fillViewport="true"