6

在此处输入图像描述

我无法控制的高度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>

分隔符.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属性仅在Android3.0(API 级别 11)或更高版本中可用。

实际上这个链接帮助了我并展示了放置分隔线的正确方法:如何将(垂直)分隔线添加到水平线性布局?

4

2 回答 2

6

您需要layout_weightButtons. 为了防止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" />

于 2014-05-25T02:31:51.450 回答
1

改用 RelativeLayout,与android:layout_width="match_parent".

对于分隔线,设置android:layout_centerHorizontal="true"

对于按钮,设置:

android:layout_toRightOf="@id/buttonDivider"

...和...

android:layout_toLeftOf="@id/buttonDivider"
于 2014-05-25T02:27:39.707 回答