EditText 在 Android Marshmallow 6.0 设备上消失
EditText disappears on Android Marshmallow 6.0 devices
这是我在 IDE 中的 xml 布局文件的样子:
除了 Marshmallow 之外的所有设备上看起来都是这样,最终看起来像这样:
如你所见,密码EditText和Remember CheckBox消失得无影无踪,但我仍然可以在class文件中正常声明它们。
这是我的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_log_in"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="my.app.LogInActivity">
<!-- Dummy item to prevent AutoCompleteTextView from receiving focus -->
<LinearLayout
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px"
android:id="@+id/linearLayout5"
android:orientation="horizontal" />
<!-- :nextFocusUp and :nextFocusLeft have been set to the id of this component
to prevent the dummy from receiving focus again -->
<AutoCompleteTextView android:id="@+id/autotext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:nextFocusUp="@id/autotext"
android:visibility="invisible"
android:nextFocusLeft="@id/autotext"
android:textSize="15sp" />
<TextView
android:id="@+id/txtname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/txt_customer"
android:layout_alignBottom="@+id/txt_customer"
android:text="Name"
android:textSize="14sp" />
<EditText
android:id="@+id/txt_customer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_below="@+id/autotext"
android:layout_toEndOf="@+id/bt_exit"
android:ems="10"
android:imeOptions="flagNoExtractUi"
android:inputType="textPersonName"
android:maxLength="100"
android:textSize="15sp" />
<EditText
android:id="@+id/txt_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView2"
android:layout_alignBottom="@+id/textView2"
android:layout_alignParentEnd="true"
android:layout_alignStart="@+id/txt_customer"
android:ems="10"
android:imeOptions="flagNoExtractUi"
android:inputType="textPassword"
android:maxLength="100"
android:textSize="15sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/txtname"
android:layout_alignStart="@+id/txtname"
android:layout_below="@+id/txt_customer"
android:layout_marginTop="25dp"
android:text="Pasword"
android:textSize="14sp" />
<Button
android:id="@+id/bt_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:text="LogIn"
android:textColor="#000000" />
<Button
android:id="@+id/bt_exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toEndOf="@+id/linearLayout5"
android:text="Quit"
android:textColor="#000000" />
<CheckBox
android:id="@+id/check_remember"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/txt_password"
android:layout_below="@+id/txt_password"
android:text="Remember" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/linearLayout5"
android:layout_toEndOf="@+id/linearLayout5"
android:text="Log In" />
名称 EditText 和密码 EditText 相同,但只有密码在 Marshmallow 6.0 设备上消失了。我已经尝试更改主题、Build Target、位置,但它仍然是一样的。哪里出了问题?
编辑#1:这个。我像他一样使用 RelativeLayout 作为 parent,但更改为 LinearLayout 不可行。
编辑#2:我试图预设一个值只是为了登录,它正常工作就像我只是手动输入它一样。内部布局文件是相同的:只有一个 EditText 出现,其余的(EditText、CheckBox、RadioButtons)消失了。到底是怎么回事??示例:
关于棉花糖:
解决了消失的错误。来自 this SO answer which leads me to this Google issue。我必须删除 android:layout_alignBaseline 属性,它们会呈现良好。
这是我在 IDE 中的 xml 布局文件的样子:
除了 Marshmallow 之外的所有设备上看起来都是这样,最终看起来像这样:
如你所见,密码EditText和Remember CheckBox消失得无影无踪,但我仍然可以在class文件中正常声明它们。
这是我的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_log_in"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="my.app.LogInActivity">
<!-- Dummy item to prevent AutoCompleteTextView from receiving focus -->
<LinearLayout
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px"
android:id="@+id/linearLayout5"
android:orientation="horizontal" />
<!-- :nextFocusUp and :nextFocusLeft have been set to the id of this component
to prevent the dummy from receiving focus again -->
<AutoCompleteTextView android:id="@+id/autotext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:nextFocusUp="@id/autotext"
android:visibility="invisible"
android:nextFocusLeft="@id/autotext"
android:textSize="15sp" />
<TextView
android:id="@+id/txtname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/txt_customer"
android:layout_alignBottom="@+id/txt_customer"
android:text="Name"
android:textSize="14sp" />
<EditText
android:id="@+id/txt_customer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_below="@+id/autotext"
android:layout_toEndOf="@+id/bt_exit"
android:ems="10"
android:imeOptions="flagNoExtractUi"
android:inputType="textPersonName"
android:maxLength="100"
android:textSize="15sp" />
<EditText
android:id="@+id/txt_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView2"
android:layout_alignBottom="@+id/textView2"
android:layout_alignParentEnd="true"
android:layout_alignStart="@+id/txt_customer"
android:ems="10"
android:imeOptions="flagNoExtractUi"
android:inputType="textPassword"
android:maxLength="100"
android:textSize="15sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/txtname"
android:layout_alignStart="@+id/txtname"
android:layout_below="@+id/txt_customer"
android:layout_marginTop="25dp"
android:text="Pasword"
android:textSize="14sp" />
<Button
android:id="@+id/bt_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:text="LogIn"
android:textColor="#000000" />
<Button
android:id="@+id/bt_exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toEndOf="@+id/linearLayout5"
android:text="Quit"
android:textColor="#000000" />
<CheckBox
android:id="@+id/check_remember"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/txt_password"
android:layout_below="@+id/txt_password"
android:text="Remember" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/linearLayout5"
android:layout_toEndOf="@+id/linearLayout5"
android:text="Log In" />
名称 EditText 和密码 EditText 相同,但只有密码在 Marshmallow 6.0 设备上消失了。我已经尝试更改主题、Build Target、位置,但它仍然是一样的。哪里出了问题?
编辑#1:这个
编辑#2:我试图预设一个值只是为了登录,它正常工作就像我只是手动输入它一样。内部布局文件是相同的:只有一个 EditText 出现,其余的(EditText、CheckBox、RadioButtons)消失了。到底是怎么回事??示例:
关于棉花糖:
解决了消失的错误。来自 this SO answer which leads me to this Google issue。我必须删除 android:layout_alignBaseline 属性,它们会呈现良好。