使用align_baseline时,Edittext会丢失样式

时间:2013-06-15 08:52:47

标签: android android-layout android-styles

我有一个布局,其中RelativeLayout有一些Edittext使用默认样式并与某些Textfield基线对齐。问题是Edittext正在丢失默认的Holo Light样式行(文本下面的行)。如果我取出基线然后显示线,当然,Edittext会失去对齐。

我怀疑这是错误或者至少是一种非常奇怪的行为,但我会在SO中询问一下: - )

它的外观(Edittexts是Opens和Closes TextViews右侧的空格):

layout

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 
    android:layout_height="match_parent"
    android:layout_width="0dip"
    android:layout_weight="50"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/store_name_edit"
        android:hint="@string/store_name"
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" />

    <EditText
        android:id="@+id/store_code_edit"
        android:hint="@string/store_code"
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" />

    <EditText
        android:id="@+id/store_group_edit"
        android:hint="@string/store_group"
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" />

    <EditText
        android:id="@+id/store_type_edit"
        android:hint="@string/store_type"
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" />

    <EditText
        android:id="@+id/store_address_edit"
        android:hint="@string/store_street"
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" />

    <TextView
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content"
        android:paddingTop="20dip" 
        android:textSize="20sp"
        android:text="@string/store_description" />

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView 
            android:id="@+id/opening"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:text="@string/store_opening_hours" />

        <TextView 
            android:id="@+id/opens"
            android:layout_below="@id/opening"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:text="@string/store_open" />

        <EditText
            android:id="@+id/opens_edit"
            android:layout_toRightOf="@id/opens"
            android:layout_alignBaseline="@id/opens"
            android:layout_height="wrap_content" 
            android:layout_width="100dip"
            android:textSize="18sp" />

        <TextView 
            android:id="@+id/closes"
            android:layout_alignBaseline="@id/opens"
            android:layout_toRightOf="@id/opens_edit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:text="@string/store_close" />

        <EditText
            android:id="@+id/closes_edit"
            android:layout_alignBaseline="@id/opens"
            android:layout_toRightOf="@id/closes"
            android:layout_height="wrap_content" 
            android:layout_width="100dip"
            android:textSize="18sp"  />
    </RelativeLayout>
</LinearLayout>

1 个答案:

答案 0 :(得分:0)

我的猜测是包含RelativeLayout以某种方式不扩展以允许EditTexts上的行显示。

将包含RelativeLayout更改为:

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="100dp">

我意识到这可能不是最好的解决方案,但这是一个开始。另一种选择可能是尝试在所有“底部”行元素上使用alignParentBottom而不是基线。