Обнаружить нажатие клавиши назад - когда клавиатура открыта

Как определить андроида назад ключ, когда клавиатура открыта?

Я хочу скрыть просмотр списка, когда клавиатура скрыта.

я использовал код ниже

final View activityRootView = findViewById(R.id.globallayout);

        activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() 
            {

                int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();

                if (heightDiff > 55) 
                { 
//keyboard is showing.
                }
                else  {

                    if(PopUpLayoutList.getVisibility()==View.VISIBLE){
                                            PopUpLayoutList.setVisibility(View.GONE);
                    }
                }
            }
        });

Но, если список содержит более 500 строк. клавиатура не скрывается должным образом. это займет от 5 до 10 секунд.

Как это решить?

1 ответ

Вы можете попробовать переопределить onBackPressed (см. Официальную документацию) следующим образом:

@Override
public void onBackPressed(){
    super.onBackPressed();    //This will call the normal operation pressing
                              // Back key
    myListView.setVisibility(View.GONE);    //This will hide yout listView Object
}

Предполагая, что myListView является объектом ListView, который вы установили ранее (например, в вашем методе onCreate).

Надеюсь, это решит ваш вопрос

Другие вопросы по тегам