Я витратив на це близько 6 годин, і не зачепив нічого, крім дорожніх блоків. Загальна передумова полягає в тому, що в рядку ListView
(який він генерується адаптером або доданий у вигляді перегляду заголовка) є якийсь рядок, який містить EditText
віджет та a Button
. Все, що я хочу зробити, - це вміти використовувати джогбол / стрілки, орієнтуватися на селектор до окремих елементів, як звичайно, але коли я дістаюсь до конкретного рядка - навіть якщо я повинен чітко визначити рядок - який має орієнтований дитино, я хочу, щоб ця дитина займала фокус, а не вказувала позицію з селектором.
Я спробував багато можливостей, і до цих пір не пощастило.
макет:
<ListView
android:id="@android:id/list"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
/>
Вид заголовка:
EditText view = new EditText(this);
listView.addHeaderView(view, null, true);
Якщо припустити, що в адаптері є інші елементи, за допомогою клавіш зі стрілками виберіть переміщення вгору / вниз у списку, як очікувалося; але, потрапляючи до рядка заголовка, він також відображається разом із селектором, і ніяк не можна зосередитись на EditText
використанні джогбола. Примітка: натискання на EditText
волю зосередить увагу саме на цьому місці, однак це покладається на сенсорний екран, що не повинно бути вимогою.
ListView
Мабуть, у цьому відношенні є два режими:
1 setItemsCanFocus(true)
.: селектор ніколи не відображається, але EditText
при використанні стрілок можна отримати фокус. Алгоритм фокус-пошуку важко передбачити, і жоден візуальний зворотний зв'язок (на будь-яких рядках: мати орієнтованих дітей чи ні) щодо обраного елемента, обидва вони можуть дати користувачеві несподіваний досвід.
2 setItemsCanFocus(false)
.: селектор завжди малюється в режимі без дотику і EditText
ніколи не може отримати фокус - навіть якщо натиснути на нього.
Що ще гірше, виклик editTextView.requestFocus()
повертає правдою, але насправді не дає уваги EditText.
Що я маю на увазі, це в основному гібрид 1 і 2, де замість налаштування списку, якщо всі елементи фокусуються чи ні, я хочу встановити фокусируемость для одного елемента в списку, щоб селектор плавно переходив від вибору цілий рядок для нефокусованих елементів та обхід дерева фокусу для елементів, які містять дітей, що фокусуються.
Хто-небудь, хто приймає?