Котлин не может нажать на пустой EditText

#android #kotlin #textedit

#Android #kotlin #текстовый редактор

Вопрос:

Я создаю активность профиля, и каждая строка содержит с одной стороны textview для информации о строке, например: Name, с другой стороны, у меня есть EditText для изменения информации при нажатии на validate. вот 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 выбрано, но мы видим, что поле prename пусто, поэтому я не могу его выбрать. кроме того, поле электронной почты работает, потому что я не ставил backgound = null , но я не хочу, чтобы под ним была панель.

Есть ли способ создать Textedit, под которым нет строки, но который все еще может быть интерактивным, если он пуст?

Ответ №1:

EditText имеет android:layout_width=»wrap_content» как только вы удалите все символы с равными нулю, в следующий раз, даже если вы включите его, вы не сможете щелкнуть по нему. Используйте атрибут android: minEms=»1″.

Комментарии:

1. Это не проблема, у меня есть кнопка редактирования, и когда я нажимаю на нее, я делаю: acc_name_first.setFocusable(true) acc_name_first.setEnabled(true) acc_name_first.setCursorVisible(true) acc_name_first.isFocusableInTouchMode = true Мне это нужно, потому что сначала я хочу видеть только информацию о полях, но когда я нажимаю на кнопку редактирования, то появляется поля становятся доступными для записи. Также, когда я пытаюсь удалить его, у меня возникает та же проблема, когда поле пустое, я не могу его щелкнуть.

2. Несмотря на то, что он перемещает курсор textedit слева, он работает благодаря

Ответ №2:

С моей точки зрения, будет лучше просто добавить минимальную ширину к редактируемому тексту:

 <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" />