按下后退按钮后,在ViewPager中关闭PopUpWindow

时间:2016-10-17 12:33:50

标签: android android-viewpager popupwindow back-button android-popupwindow

我想在按下后退按钮后关闭popupWindow。 popUp窗口位于View Page中,它位于Activity中。后退按钮对任何触摸都没有反应。(当popUp关闭工作正常时)我设置了BackgroundDrawable和OutsideTouchable,但仍然没有。

public class popUp extends PopupWindow implements ViewPager.OnPageChangeListener, 
    View.OnClickListener{

    public popUp{
          setContentView(view);
          setWidth(LinearLayout.LayoutParams.WRAP_CONTENT);
          setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);
          setOutsideTouchable(true);
          setFocusable(true);
          showAtLocation(view, Gravity.CENTER, 0,0);
          setBackgroundDrawable(new ColorDrawable());
    }}

活动

  @Override
    public void onBackPressed() {
        if(ViewPagerAdapter!=null){
            if (ViewPagerAdapter.popUp!= null && ViewPagerAdapter.popUp.isShowing())
                ViewPagerAdapter.popUp.dismiss();
             else
                super.onBackPressed();
            }
    }

2 个答案:

答案 0 :(得分:0)

这是你的总代码吗? 没有弹出窗口。根据我的知识,弹出窗口意味着警报对话框。如果我没有错,你的一些地方就是你的。

alartDialog.setCancelable(false);

删除该代码,您可以使用后退按钮。 该代码在显示警告对话框时禁用后退按钮。

最好分享您的总代码....

答案 1 :(得分:0)

你可以试试这个......

 public class popUp extends PopupWindow implements View.OnClickListener{
 @Override
 public boolean onKey(View v, int keyCode, KeyEvent event) {
    if(keyCode== KeyEvent.KEYCODE_BACK){
        yourPopupWindow.dismiss();
    }
    return true;
 }

}

您已经实现了View.OnClickListener,其中onKey实现的方法使用了...