2016-03-11 2 views
0

Основной пользовательский интерфейс программы моего приложения состоит из двух разделов, состоящих из двух LinearLayouts.The LinearLayout выше стремится показать самолет. LinearLayout ниже имеет целью показать мягкую клавиатуру . Я хочу использовать клавиши на мягкой клавиатуре для управления движением самолетов. Например, если я нажимаю клавишу «на» на мягкой клавиатуре, самолет будет двигаться влево. Но я не знаю, как показывать мягкую клавиатуру на LinearLayout ниже. Вы можете мне помочь?Android: как показать мягкую клавиатуру на LinearLayout

+0

На каком случае вы пытаетесь показать мягкую клавиатуру? –

ответ

0

Это лучше сделать пользовательские кнопки , но вы можете добиться того, что вы хотите,

  • Встраивание EditText в макете и сделать его invisible или gone.
  • Программно скрыть/показать клавиатуру, используя это utility class.
0

Использование windowSoftInputMode="stateAlwaysVisible" в манифесте, чтобы показать клавиатуру

+0

Хороший ответ, но как захватить вход? –

+0

путем захвата ключевых событий с помощью dispatchKeyEvent –

0

В дополнение к тому, что другие здесь предлагается (показать клавиатуру), вы можете использовать это для того, чтобы softKeboard «делать ничего» в макеты:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING); 

или в манифесте:

android:windowSoftInputMode="adjustNothing" 

Думаю, вам стоит рассмотреть возможность установки кнопок в вашем макете, а не использование клавиатуры Android ... но это всего лишь предложение.

0

Вы можете использовать это в манифесте

android:windowSoftInputMode="stateVisible" 

Он показывает клавиатуру при запуске деятельности, и вы можете получить ключ событие, перекрывая dispatchKeyEvent и получать KeyEvent.KEYCODE_S как здесь

@Override 
public boolean dispatchKeyEvent(KeyEvent event) { 

if(event.getKeyCode() == KeyEvent.KEYCODE_S){ 

     //Do whatever you want here 
    } 
    return super.dispatchKeyEvent(event); 
} 
Смежные вопросы