如何在2个其他项目之间放置项目并将其对齐在中心? (请参见上图中的红色按钮) - 如何在“中心按钮”和“底部按钮”之间定位?
这是我的相对布局代码:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<Button
android:id="@+id/button_center"
android:text="Center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerInParent="true"/>
<!-- The new button should be between these 2 items -->
<Button
android:id="@+id/button_bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bottom"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"/>
<Button
android:id="@+id/button_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Top"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"/>
<Button
android:id="@+id/button_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Left"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"/>
<Button
android:id="@+id/button_rignt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Right"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
<Button
android:id="@+id/button_rel_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/button_right"
android:layout_alignTop="@id/button_rignt"
android:text="RelRight"/>
<Button
android:id="@+id/button_rel_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/button_left"
android:layout_alignTop="@id/button_left"
android:text="RelLeft"/>
</RelativeLayout>
答案 0 :(得分:24)
您需要添加另一个布局,以便按钮完全位于中间。例如,将其添加到您的布局:
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_above="@+id/button_bottom"
android:layout_alignLeft="@+id/button_center"
android:layout_alignRight="@+id/button_center"
android:layout_below="@id/button_center" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="new" />
</FrameLayout>
答案 1 :(得分:-1)
我来到这个解决方案:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- centered button -->
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<Button android:text="CenteredButton"
android:id="@+id/centered_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</FrameLayout>
</LinearLayout>
</RelativeLayout>
只需将此代码用于LinearLayout而不是Button。我认为这不是最好的,但它已经足够好了。