我有一个RelativeLayout,里面有一些ImageViews(对于页眉和页脚)。然后,在图像之间的空间中,我设置了一个带有嵌套LinearLayout(也是垂直)的ScrollView(垂直)。
事实是,我无法将LinearLayout内的按钮垂直居中(它们已经水平居中)。是的,我试图使用gravity =" center"无济于事。这是它的样子:
<ScrollView
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:layout_above = "*Image1*"
android:layout_below = "*Image2*"
>
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:gravity = "center"
android:orientation = "vertical"
>
<Button><Button/>
<Button><Button/>
<Button><Button/>
<Button><Button/>
<LinearLayout/>
<ScrollView/>
答案 0 :(得分:0)
ScrollView需要有一个固定的高度。更像它必须知道里面所有孩子的高度,知道它可以上下滚动多少。因此,它强制其子节点具有wrap_content的高度。
来到你的情况,你的LinearLayout的高度为wrap_content。现在,由于您尝试将LinearLayout的高度包装到LinearLayout的子项,因此子项无法在LinearLayout中垂直移动。因此,您不能在高度为wrap_content的容器中垂直居中。同样,如果宽度为wrap_content,则无法水平居中。
我希望这能清除你的怀疑。 :)
答案 1 :(得分:0)
根据我对问题的理解,可以按如下方式进行:
在滚动视图内的线性布局中添加这些
android:layout_gravity="center"
android:gravity="center"
示例:
<ScrollView
android:layout_above="@+id/footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/header">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<Button
android:id="@+id/btn1"
android:text="btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn2"
android:text="btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btn1" />
<Button
android:id="@+id/btn3"
android:text="btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btn2" />
<Button
android:id="@+id/btn4"
android:text="btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btn3" />
</LinearLayout>
</ScrollView>
希望有所帮助