Я уже прочитал множество подобных вопросов, но не нашел решения, которое решило бы мою проблему, поэтому, пожалуйста, не отмечайте это как дубликат.
У меня есть ListFragment
с FrameLayout
, содержащим ListView
, заполненным через custom ArrayListAdapter
. Каждая строка списка состоит из трех элементов:
Checkbox
, EditText
и ImageButton
.
Моя проблема в том, что когда я нажимаю на EditText
, чтобы изменить string
, он содержит клавиатуру, но фокус сразу же исчезает, и я не могу писать.
Обратите внимание, что я уже добавил в свой Activity
файл manifest
android:windowSoftInputMode="adjustResize"
даже
android:descendantFocusability="afterDescendants" android:descendantFocusability="beforeDescendants"
не решает проблему.
Вот мой XML-код:
row_item.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item_checkbox"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
/>
<EditText
android:id="@+id/item_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="60px"
android:text="Test text"
android:singleLine="true"
android:layout_toRightOf="@id/item_checkbox"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/item_important"
android:layout_toStartOf="@+id/item_important" />
<ImageButton
android:id="@+id/item_important"
android:layout_width="20dip"
android:layout_height="20dip"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:visibility="visible"
android:layout_marginLeft="10dp" />
</RelativeLayout>
фрагмент_список.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp"
>
<ListView android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</FrameLayout>
Было бы здорово, если бы вы могли предложить мне какой-нибудь ресурс, где можно понять, как работает фокусируемость в этом случае.
Спасибо
ОБНОВИТЬ
Я обнаружил, что проблема создается появлением клавиатуры: я предполагаю, что повторное использование представления является причиной того, что EditText
теряет фокус.