PopupWindow

来源:互联网 发布:红蓝3d mac播放器 编辑:程序博客网 时间:2024/05/24 15:36

可以用来显示数据:例如listView的数据

  private int popupWindowHight = 300;    public void showListNumber() {        if (popup == null) {            popup = new PopupWindow(listview, et_text.getWidth(), popupWindowHight);  //popupWindow要显示的view     和  popup  的宽度;          }            //要使listView获得焦点必走这。        popup.setFocusable(true);  //要让其他的view能获得焦点。        popup.setBackgroundDrawable(new BitmapDrawable()); //设置一个空的背景图片。        popup.setOutsideTouchable(true);        popup.showAsDropDown(et_text, 0, 0);  //向下显示  依附的view  偏移view坐标系的xy坐标。    }

PopupWindow 的高度随listview条目的变化而变化;

iv_delete.setOnClickListener(new OnClickListener() {                @Override // 当点击删除按钮时需要将数据删除掉。                public void onClick(View v) {                    list.remove(position);                    notifyDataSetChanged();  //注意Adapter的数据改变时,要加这个。以便显示。                    /**                     * 当listview的条目改变时,需要改变popupWindow的高度。                     */                    int  listviewHeight = view.getHeight()*list.size();                                                                           //三元表达式 判断。                    popup.update(et_text.getWidth(), listviewHeight>popup.getHeight()?popup.getHeight():listviewHeight);                    //要将下拉箭头隐藏掉。                    if(list.size()==0){                        popup.dismiss();                        iv_select.setVisibility(View.GONE);    //设置imageview隐藏消失掉。                    }                }            });

下拉选择:
1.假如listview的item中有Button,ImageButton,CheckBox等会强制获取焦点的view
此时,listview的item无法获取焦点,从而无法被点击
解决方法:给item的根布局增加以下属性
android:descendantFocusability=”blocksDescendants”
设置之后,Button获取焦点,item中其他控件也可以获取焦点

0 0
原创粉丝点击