popupwindow的使用及注意事项

private void popAwindow(final EditText parent, List<CarNo> list) {
		if (popview == null) {
			LayoutInflater lay = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
			View v = lay.inflate(R.layout.item_pop, null);
			lv_item = (ListView) v.findViewById(R.id.item_lv);
			lv_item.setAdapter(popAdapter);
			popAdapter.setData(list);
			popAdapter.notifyDataSetChanged();
			lv_item.setOnItemClickListener(new OnItemClickListener() {

				@Override
				public void onItemClick(AdapterView<?> arg0, View arg1,
						int arg2, long arg3) {
					parent.setText(data.get(arg2).getPlateNo());
					popview.dismiss();
				}
			});
			popview = new PopupWindow(v, et_carno.getWidth(),
					LayoutParams.WRAP_CONTENT);
			
		}
		popview.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
		popview.setFocusable(true);
		popview.setOutsideTouchable(true);
		popview.setBackgroundDrawable(new ColorDrawable());
		popview.update();
		popview.showAsDropDown(parent, 2, 2);

	}

一个简单使用popupwindow的方法,其中setFocusable,setOutsideTouchable,setbackgroundDrawable是必须的,且顺序不要颠倒,功能为点击外面或者返回键可以取消popupwindow。popview.setSoftInputMode适用于一些有虚拟键的手机,场景为一个popupwindow在某控件下边展示,并直接显示到底,类似华为有虚拟按键的手机最后几项会被虚拟按键挡住,设置此方法会使popupwindow不被遮挡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值