我在布局相对布局时遇到问题。这是测试代码
<RelativeLayout
android:background="@drawable/bg_controls"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/controls_layout"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/controls_layout" />
</RelativeLayout>
结果是
如果我删除android:layout_centerInParent =“true”一切正常。为什么RelativeLayout不能这样做呢?
UPD:预期的结果是LinearLayout下会出现第二个按钮。
答案 0 :(得分:1)
我遇到了一个非常类似的问题,我的中心View
被指定为layout_centerInParent
,我的所有其他观点都与此相关,但有一些View
s无法在编辑器或设备上正确呈现。
我发现我的中心View
本身,指定为layout_centerInParent
,仍然必须与其他东西相关(因为听起来不直观)。所以我在layout_below
之上做了一些事情,即使它上面的View
没有与任何东西对齐,除了下面同一个事件的layout_top
之外。但是,一旦我这样做,整个用户界面就会突然出现:)
答案 1 :(得分:1)
当相对布局具有高度wrap_content时会发生这种情况。如果您可以为相对布局提供固定高度,则layout_below centerInParent项可以正常工作。否则,相对布局假定第一个项目(此处为controls_layout)的位置在通常位置(即没有centerInparent)并对齐它下面的第二个项目。
解决方案:
答案 2 :(得分:0)
您使用的是API级别3(1.5)吗? RelativeLayouts非常古怪1.5。给你的按钮一个id是个好主意。
答案 3 :(得分:0)
您是否尝试在实际设备上运行此功能?我在eclipse中预览布局时遇到了这个问题,但是当我在设备上运行它时,它按预期工作了