Android:确保EditText框在屏幕上水平放置?

时间:2014-07-22 14:13:14

标签: android android-layout android-edittext

我想在我的活动中横向在屏幕上对齐 3个EditText框,以便用户能够输入数据。

目前我正在实施的代码不允许3个框适合屏幕。只有1个盒子,另一半是可见的

如何调整当前代码,以便所有3个Edittext框可见给用户?

注意:布局底部的按钮和textView目前也可见,尽管它们应位于3个水平对齐的Edittext框下。

当前的XML布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tvSearchDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" Enter Date to search..."
        android:textSize="15dp" />

    <LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >



     <EditText
        android:id="@+id/etEnterSpecificyear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="" >
    </EditText>

     <TextView
        android:layout_width="3dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        />

    <EditText
        android:id="@+id/etEnterSpecificMonth"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="" >
    </EditText>

    <TextView
        android:layout_width="3dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        />

     <EditText
        android:id="@+id/etEnterSpecificDay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="" >
    </EditText>

     </LinearLayout>

    <Button
        android:id="@+id/btnSearchDate"
        android:layout_width="85dp"
        android:layout_height="50dp"
        android:layout_gravity="center"
        android:text="Submit" 
        />

    <TextView
        android:id="@+id/tvSearchResultsDate"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:maxLines="30"
        android:minLines="5"
        android:scrollbars="vertical"
        android:text=" Results..."
        android:textSize="15dp" />



</LinearLayout>

2 个答案:

答案 0 :(得分:1)

对于您的每个edittext,请执行以下操作:

<EditText
    android:id="@+id/etEnterSpecificyear"
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="wrap_content"
    android:layout_marginLeft="2dp"
    android:layout_marginRight="2dp"
    android:hint="" >
</EditText>

删除EditText的

之间的TextView

答案 1 :(得分:0)

您的问题是您在EditText属性中使用 android:ems =&#34; 10&#34; 。这个使EditText的最小宽度精确到10&#34; M&#34;字符。如果这是您的要求,我建议在父LinearLayout中使用 android:orientation =&#34; vertical&#34; 。因此,您的最终布局将如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">

    <TextView
        android:id="@+id/tvSearchDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" Enter Date to search..."
        android:textSize="15dp"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">


        <EditText
            android:id="@+id/etEnterSpecificyear"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="">
        </EditText>

        <EditText
            android:id="@+id/etEnterSpecificMonth"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="">
        </EditText>

        <EditText
            android:id="@+id/etEnterSpecificDay"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="">
        </EditText>

    </LinearLayout>

    <Button
        android:id="@+id/btnSearchDate"
        android:layout_width="85dp"
        android:layout_height="50dp"
        android:layout_gravity="center"
        android:text="Submit"
        />

    <TextView
        android:id="@+id/tvSearchResultsDate"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:maxLines="30"
        android:minLines="5"
        android:scrollbars="vertical"
        android:text=" Results..."
        android:textSize="15dp"/>


</LinearLayout>