说明:

弹框布局要显示在某个空间下面需求。使用PopupWindow 弹框控件。


代码:

使用PopupWindow。

1、PopupWindow初始化

    private PopupWindow popupWindow;    //初始化搜索popup (可以启动初始化)    private void initSearchPopupWindow() {        LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);        final View contentview = inflater.inflate(R.layout.popup_search_varieties_select, null);//自己的弹框布局        final EditText et_search = (EditText) contentview.findViewById(R.id.et_search);//布局中的编辑框        TextView tv_search = (TextView) contentview.findViewById(R.id.tv_search);//布局中的搜索按钮        contentview.setFocusable(true); // 这个很重要        contentview.setFocusableInTouchMode(true);        popupWindow = new PopupWindow(contentview, RadioGroup.LayoutParams.MATCH_PARENT, RadioGroup.LayoutParams.WRAP_CONTENT);        popupWindow.setFocusable(true);        popupWindow.setOutsideTouchable(false);        contentview.setOnKeyListener(new View.OnKeyListener() {//监听系统返回键            @Override            public boolean onKey(View v, int keyCode, KeyEvent event) {                if (keyCode == KeyEvent.KEYCODE_BACK) {                    popupWindow.dismiss();                    return true;                }                return false;            }        });    }

2、点击某个空间,启用PopupWindow,制定其显示位置

iv_search.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                popupWindow.showAsDropDown(rl_header);//PopupWindow显示在rl_header空间下面            }        });

其它说明:

显示PopupWindow

  • showAsDropDown(View anchor):相对某个控件的位置(正左下方),无偏移

  • showAsDropDown(View anchor, int xoff, int yoff):相对某个控件的位置,有偏移

  • showAtLocation(View parent, int gravity, int x, int y):相对于父控件的位置(例如正中央Gravity.CENTER,下方Gravity.BOTTOM等),可以设置偏移或无偏移

和dialog对比,主要用在特殊的使用,比如:显示在某个空间下面!

更多相关文章

  1. Android(安卓)实现轮播图效果(二) 底部圆点布局实现
  2. Android(安卓)Design Support Library(1)- FloatingActionButton的
  3. Android(安卓)常用Adapter(ArrayAdapter ,SimpleAdapter ,BaseAdapt
  4. Android集成微信SDK:微信分享
  5. Settings 界面修改
  6. Android(安卓)CircleMenu 圆形旋转菜单
  7. ListView 自动滚动
  8. android项目高级UI学习
  9. android极简原创系列:tabhost最简单配置

随机推荐

  1. mysql中datetime类型设置默认值方法
  2. mysql 5.7.21 winx64免安装版配置方法图
  3. mysql 5.7.20\5.7.21 免安装版安装配置
  4. MySQL5.7.21安装与密码图文配置教程
  5. 云服务器Ubuntu_Server_16.04.1安装MySQL
  6. MySQL快速对比数据技巧
  7. Linux下安装mysql的方式(yum和源码编译两
  8. 分析Mysql大量数据导入遇到的问题以及解
  9. Windows系统下mysql5.7.21安装详细教程
  10. win10下mysql5.7.21安装详细过程