Kotlin 无法点击空的 EditText

Kotlin can't click on empty EditText

我正在创建一个配置文件 activity,每行的一侧包含一个文本视图,用于获取有关该行的信息,例如:名称,在另一侧,我有一个 EditText 可以在我们单击时更改信息在验证。这是每行的 xml :

    <FrameLayout
            android:id="@+id/first_name_row"
            android:layout_marginBottom="@dimen/profile_row_bottom_margin"
            android:background="@color/white"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:foreground="?android:attr/selectableItemBackground">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="@dimen/small_item_list_height"
                android:paddingEnd="@dimen/default_padding"
                android:paddingLeft="@dimen/default_padding"
                android:paddingRight="@dimen/default_padding"
                android:paddingStart="@dimen/default_padding">

                <TextView
                    android:includeFontPadding="false"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true"
                    android:layout_centerVertical="true"
                    android:layout_marginEnd="@dimen/default_padding"
                    android:layout_marginRight="@dimen/default_padding"
                    android:text="@string/acct_first_name"
                    android:textSize="@dimen/profile_row_text_size" />

                <EditText
                    android:id="@+id/acc_name_first"
                    android:includeFontPadding="false"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_alignParentEnd="true"
                    android:layout_centerVertical="true"
                    android:layout_marginEnd="@dimen/default_padding"
                    android:layout_marginRight="@dimen/default_padding"
                    android:background="@null"
                    android:text="@string/acct_first_name"
                    android:enabled="false"
                    android:focusable="false"
                    android:cursorVisible="false"
                    android:textSize="@dimen/profile_row_text_size" />

            </RelativeLayout>
        </FrameLayout>

问题是我添加了 android:background="@null" 是因为我不想要字段下方的栏。但是当我这样做时,我从该字段中删除了所有字符,它变成了空的,如果我更改为关注另一个字段,我无法点击空白字段。

这里有图片,Nom 字段是 select 编辑的,但我们看到字段前名是空的,所以我不能 select 它。也,外地电子邮件工作,因为我没有放 backgound = null 但我不想要它下面的栏。

有没有办法让 Textedit 在它下面没有栏但仍然可以点击它是空的?

EditText 有 android:layout_width="wrap_content" 一旦你删除所有字符变为零,下次即使你启用它也不能点击它。使用属性 android:minEms="1".

从我的角度来看,为您的编辑文本添加一些最小宽度会更好:

<EditText
    android:id="@+id/acc_name_first"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:layout_marginEnd="@dimen/default_padding"
    android:layout_marginRight="@dimen/default_padding"
    android:background="@null"
    android:cursorVisible="false"
    android:enabled="false"
    android:focusable="false"
    android:includeFontPadding="false"
    android:minWidth="50dp"
    android:text="@string/acct_first_name"
    android:textSize="@dimen/profile_row_text_size" />