Я создаю действие профиля, и каждая строка содержит с одной стороны текстовое представление для информации о строке, например: Имя, с другой стороны у меня есть 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", потому что мне не нужна полоса под полем. но когда я это делаю, я удаляю все символы из поля, оно становится пустым, и если я перехожу на другое поле, я не могу щелкнуть пустое поле.

profile image

Здесь у вас есть изображение, поле Nom выбрано, но мы видим, что предварительное имя поля пустое, поэтому я не могу его выбрать. Кроме того, поле электронной почты работает, потому что я не поставил backgound = null, но я не хочу, чтобы панель под ним.

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

0
Aqua Freshka 1 Сен 2020 в 18:51

2 ответа

Лучший ответ

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

1
TRK P 1 Сен 2020 в 16:47

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

<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" />
1
Andrei Tanana 1 Сен 2020 в 18:39