使用popwindow制作弹出框与获得焦点弹出软键盘

本文详细介绍了如何使用PopupWindow创建自定义对话框,包括设置布局、显示位置及如何与软键盘交互等关键技术点。

如果是声明一各类

public class VideoFilterDialog extends PopupWindow
那么在构造方法中添加:

conentView = inflater.inflate(R.layout.video_popup_filter, null);

 this.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
    this.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
this.setContentView(conentView);
注意:上面的布局大小,直接使用了ViewGroup;因为这个是最上层的父布局,Linearlayout,Framlayout,Relativelayout都是继承于它。也可以直接针对自己的布局使用Linearlayout,Framlayout,Relativelayout的 LayoutParams。

弹出展示:

showAtLocation(parent, Gravity.NO_GRAVITY, x, y);
parent是弹出框口的根布局。

获取焦点弹出软键盘,并且将popwindow往上顶起:

this.setBackgroundDrawable(new BitmapDrawable());
this.setOutsideTouchable(false);
this.setFocusable(true);
//mEditInput.requestFocus();
this.setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);
this.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
this.showAtLocation(CommentCons.mFatherView, Gravity.BOTTOM, 0, 0);

说白了popwindow实现自动弹出软键盘就是提供了

PopupWindow.INPUT_METHOD_NEEDED
方法,ACTIVITY中提供setSoftInputMode()方法,为何在fragment中提供INPUT_METHOD_NEEDED  参数。                                                    

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值