如果layout_width =“wrap_content”而不是layout_weight =“1”,则EditText消失

时间:2014-02-07 07:16:26

标签: android android-layout android-edittext

下一代代码适用于Eclipse Layout Editor和Android Studio。我在几部手机上测试过它并且工作正常,但在三星GT-S6310N(Android 4.1.2)中,这个EditText消失了。它位于定义布局宽度的LinearLayout的末尾。使用android:Theme.Dialog。

在Dialog中显示布局
<EditText
            android:id="@+id/et_clino"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="4"
            android:inputType="numberDecimal"
            android:text="89.9" />

我已经解决了这个问题,将代码更改为:

<EditText
        android:id="@+id/et_clino"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="4"
        android:inputType="numberDecimal"
        android:text="89.9" />

问题是:错误的mi代码还是错误?

这是代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp"
tools:context=".Measure" >

<RelativeLayout
    android:id="@+id/rl_a"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/TextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignBaseline="@+id/et_from"
        android:text="@string/from"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/et_from"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/TextView1"
        android:ems="7"
        android:hint="@string/from"
        android:lines="1"
        android:maxLength="7"
        android:minLines="1"
        android:nextFocusDown="@+id/et_to"
        android:text="1234567" />

    <EditText
        android:id="@+id/et_to"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/et_from"
        android:layout_alignParentRight="true"
        android:ems="7"
        android:hint="@string/to"
        android:maxLength="7"
        android:maxLines="1"
        android:nextFocusDown="@+id/et_distance"
        android:text="1234567" />

    <TextView
        android:id="@+id/TextView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/et_from"
        android:layout_toLeftOf="@+id/et_to"
        android:text="@string/to"
        android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>

<LinearLayout
    android:id="@+id/ll_b"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/tv_distance"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/distance_abr"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/green" />

    <EditText
        android:id="@+id/et_distance"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="4"
        android:hint="@string/distance_abr"
        android:inputType="numberDecimal"
        android:lines="5"
        android:maxLength="6"
        android:nextFocusDown="@+id/et_rumbomag" />

    <TextView
        android:id="@+id/TextView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/rumbo_mn_abr"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/et_rumbomag"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="4"
        android:hint="@string/rumbo_mn_abr"
        android:inputType="numberDecimal"
        android:maxLength="5"
        android:nextFocusDown="@+id/et_measured_clino"
        android:text="360.0" />

    <TextView
        android:id="@+id/tv_clino"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/clino"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/et_clino"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="4"
        android:inputType="numberDecimal"
        android:text="89.9" />

    <!--  Así produce error: el et_clino desaparece y el tv_clino se estrecha y muestra el texto en 3 líneas
    <EditText
        android:id="@+id/et_clino"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="4"
        android:inputType="numberDecimal"
        android:text="89.9" />
        -->
  </LinearLayout>

<LinearLayout
    android:id="@+id/ll_d"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <RadioGroup
        android:id="@+id/rg_direction"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/rb_direct"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:hint="@string/direction"
            android:text="@string/direct" />

        <RadioButton
            android:id="@+id/rb_inverse"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="@string/inverse" />
    </RadioGroup>

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

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true" >

            <!--
            <Button
                android:id="@+id/btn_get_from_bt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="BT"
                android:textColor="@color/blue" />
                 -->

            <Button
                android:id="@+id/btn_delete"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:text="@string/delete"
                android:textColor="@color/red" />

            <ImageButton
                android:id="@+id/ib_disto"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:scaleType="fitCenter"
                android:src="@drawable/disto" />

            <Button
                android:id="@+id/btn_add"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="10dp"
                android:paddingRight="10dp"
                android:text="@string/save"
                android:textColor="@color/green" />

        </LinearLayout>
    </RelativeLayout>
</LinearLayout>

<LinearLayout
    android:id="@+id/ll_e"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <EditText
        android:id="@+id/et_description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/description" >

        <requestFocus />
    </EditText>
</LinearLayout>

1 个答案:

答案 0 :(得分:0)

我在xml文件中做了一些更改(尤其是包含LinearLayout cli_noEditText@string资源的@drawable),如下所示:

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

<RelativeLayout
    android:id="@+id/rl_a"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/TextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/et_from"
        android:layout_alignParentLeft="true"
        android:text="@string/from"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/et_from"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/TextView1"
        android:ems="7"
        android:hint="@string/from"
        android:lines="1"
        android:maxLength="7"
        android:minLines="1"
        android:nextFocusDown="@+id/et_to"
        android:text="1234567" />

    <EditText
        android:id="@+id/et_to"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/et_from"
        android:layout_alignParentRight="true"
        android:ems="7"
        android:hint="@string/to"
        android:maxLength="7"
        android:maxLines="1"
        android:nextFocusDown="@+id/et_distance"
        android:text="1234567" />

    <TextView
        android:id="@+id/TextView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/et_from"
        android:layout_toLeftOf="@+id/et_to"
        android:text="@string/to"
        android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>

<LinearLayout
    android:id="@+id/ll_b"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/tv_distance"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="distance_abr"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/green" />

    <EditText
        android:id="@+id/et_distance"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:ems="4"
        android:layout_weight="1"
        android:hint="distance_abr"
        android:inputType="numberDecimal"
        android:lines="5"
        android:maxLength="6"
        android:nextFocusDown="@+id/et_rumbomag" />

    <TextView
        android:id="@+id/TextView3"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="distance_abr"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/et_rumbomag"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:ems="4"
        android:hint="rumbo"
        android:inputType="numberDecimal"
        android:maxLength="5"
        android:text="360.0" />

    <TextView
        android:id="@+id/tv_clino"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="clino"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/et_clino"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="4"
        android:inputType="numberDecimal"
        android:text="89.9" />
</LinearLayout>

<LinearLayout
    android:id="@+id/ll_d"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <RadioGroup
        android:id="@+id/rg_direction"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/rb_direct"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:hint="direction"
            android:text="direct" />

        <RadioButton
            android:id="@+id/rb_inverse"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="inverse" />
    </RadioGroup>

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

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true" >

            <!--
        <Button
            android:id="@+id/btn_get_from_bt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="BT"
            android:textColor="@color/blue" />

            -->

            <Button
                android:id="@+id/btn_delete"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:text="@string/delete" />

            <ImageButton
                android:id="@+id/ib_disto"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:scaleType="fitCenter"
                android:src="@drawable/back02" />

            <Button
                android:id="@+id/btn_add"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="10dp"
                android:paddingRight="10dp"
                android:text="save"
                android:textColor="@color/green" />
        </LinearLayout>
    </RelativeLayout>
</LinearLayout>

<LinearLayout
    android:id="@+id/ll_e"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <EditText
        android:id="@+id/et_description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/description" >

        <requestFocus />
    </EditText>
</LinearLayout>

EditText消失的原因是您要显示总宽度大于屏幕宽度的项目,因此我应用了{{1} } layout_weight:"1"中的所有元素。这可能有助于您解决问题。