如何在键盘打开时检测android的back键?
我想在键盘被隐藏时隐藏列表视图。
我用了下面的代码

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秒。
如何解决这个问题?

最佳答案

您可以尝试重写onbackpressed(参见官方Documentation),如下所示:

@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方法中)。
希望它能解决你的问题

10-07 12:44
查看更多