Я использовал этот код в виде фрагмента на закрытие Просмотреть в полноэкранном режиме пейджера и он работает
View v = inflater.inflate(R.layout.fragment_addetails, container1,
false);
v.setFocusableInTouchMode(true);
v.requestFocus();
v.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& pager.getVisibility() == View.VISIBLE) {
pager.setVisibility(View.GONE);
return true;
}
return false;
}
});
или это
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
//do code
return true
}
return false;
}
может быть, это поможет Если нет, опишите полный сценарий того, что вы пытаетесь достичь.
Я пробовал это раньше, чем переопределить функцию onKey или установить onkeylistener, но я думаю, что это не работает, потому что представление не настраивается. Теперь я расскажу вам полный сценарий: у меня есть услуга. Оттуда я показываю наложение с видом в нем. И оттуда ваш код не работает. Он просто проигнорирован ... –
см. Отредактированный код Это работает для меня, чтобы установить, что вы надуваетесь, чтобы быть установленнымFocusableInTouchMode (true); и он должен работать удачи –
Nonono это systemoverlay, и это НЕ должно быть фокусируемым, фокус должен идти под взглядом! –