Отсутствует первый KeyEvent при использовании ComponentActivity.setContent()Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Отсутствует первый KeyEvent при использовании ComponentActivity.setContent()

Сообщение Anonymous »

Я хочу перехватывать все KeyEvents в Activity независимо от фокуса.
Минимальный рабочий пример:

Код: Выделить всё

class MainActivity : ComponentActivity() {
@SuppressLint("RestrictedApi")
override fun dispatchKeyEvent(event: KeyEvent): Boolean {
Log.d(TAG, "$event")
return super.dispatchKeyEvent(event)
}
}
Запустите действие, нажав на значок приложения, затем нажмите аппаратную клавишу (например, стрелку клавиатуры при использовании эмулятора). Я ожидаю 2 ключевых события: ACTION_DOWN, за которым следует ACTION_UP. Именно это мы и получаем:

Код: Выделить всё

App: ACTION_DOWN
App: ACTION_UP
Теперь, как только мы добавляем что-то на экран в Compose, нам не хватает самого первого события ACTION_DOWN:

Код: Выделить всё

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text("Hello, world!")
}
}
/* rest is the same */
}
Мы получаем следующее:

Код: Выделить всё

Compose Focus: Owner FocusChanged(true)
App: ACTION_UP
Последующие нажатия клавиш работают:

Код: Выделить всё

Compose Focus: Owner FocusChanged(true)
App: ACTION_UP
App: ACTION_DOWN
App: ACTION_UP
Как избежать использования первого события миром Compose? Я пробовал использовать FocusRequester, но безрезультатно.

Подробнее здесь: https://stackoverflow.com/questions/793 ... setcontent
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • В чем разница между Androidx.core.app.componentactivity и Androidx.activity.componentactivity в Android?
    Anonymous » » в форуме Android
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Полученный не может вызвать setcontent дважды за тест при использовании правила повтора. Мне нужно использовать setConte
    Anonymous » » в форуме Android
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Jetpack Compose больше не может импортировать текст или setContent
    Anonymous » » в форуме Android
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Как изменить вид контента с помощью кнопки с помощью setcontent
    Anonymous » » в форуме Android
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Мой файл макета не отображается в setContent (файл R.layout.xml)..?
    Anonymous » » в форуме Android
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»