PopupWindow

可以用来显示数据:例如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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值