我无法控制LinearLayout
的高度。这些不能正确对齐并且不会填满宽度。我希望分隔符位于中心,两侧的按钮都在中间。这是我的代码:
<LinearLayout
android:id="@+id/buttonFieldsLayout"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/loginFieldsLayout" >
<Button
android:id="@+id/signUpButton"
style="@style/AuthButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sign_up_button_label" />
<View
android:id="@+id/buttonDivider"
android:layout_width="1dp"
android:layout_height="wrap_content"
android:background="@drawable/divider" />
<Button
android:id="@+id/cancelButton"
style="@style/AuthButton"
android:text="@string/cancel_button_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
divider.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<gradient
android:startColor="@color/white"
android:centerColor="@color/blue"
android:endColor="@color/white" />
</shape>
更新1:
在@Onik的建议之后,观点仍然存在
更新2:
我删除了View
元素,并在LinearLayout
中添加了此代码,但它确实有效!
android:divider="@drawable/divider"
android:showDividers="middle"
注意: android:divider
属性仅在Android
3.0(API级别11)或更高版本中可用。
实际上这个链接帮助了我并展示了放置分隔符的正确方法:How to add (vertical) divider to a horizontal LinearLayout?
答案 0 :(得分:3)
您需要为layout_weight
使用Buttons
属性。要防止divider
填充布局的高度(如图片中屏幕的整个高度),请使用layout_height="match_parent"
代替layout_height="wrap_content"
。这将填充屏幕(或父级)的宽度,并将button's
宽度设置为相等,其中divider
的高度相同:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/buttonFieldsLayout"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/loginFieldsLayout" >
<Button
android:id="@+id/signUpButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="sign_up_button_label" />
<View
android:id="@+id/buttonDivider"
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@drawable/divider" />
<Button
android:id="@+id/cancelButton"
android:text="cancel_button_label"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
答案 1 :(得分:1)
使用RelativeLayout代替android:layout_width="match_parent"
。
对于分隔符,请设置android:layout_centerHorizontal="true"
对于按钮,请设置:
android:layout_toRightOf="@id/buttonDivider"
...和...
android:layout_toLeftOf="@id/buttonDivider"