导航:首页 > APP软件 > 安卓popwindow

安卓popwindow

发布时间:2022-08-26 19:18:36

1. android Popupwindow 遇到软键盘时,出现位置发生上移

在AndroidManifest中添加
<activity android:name="testActivity"
android:windowSoftInputMode="adjustPan">
设置属性为android:windowSoftInputMode="adjustResize"即可自动调整高度。
属性stateVisible表示默认显示输入法键盘,其他属性见:android:windowSoftInputMode

2. 如何在android程序执行初始化的时候弹出一个PopupWindow 触发的事件是在初始化的时候。

new一个Handler变量,在OnCreate里面通过这个Handler去发送消息,handler在Onmessage里面收到消息后,在show出来就可以了;类似的情况还有在oncreate里面不能显示toast之类的,要用线程去处理

3. 安卓popupwindow怎么预先加载

ublic static View showPopupWindowMenu(Activity mContext, View anchorView, int layoutId) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(layoutId, null);
popupWindow = new PopupWindow(view, DisplayUtil.dip2px(mContext, 148), WindowManager.LayoutParams.WRAP_CONTENT);
popupWindow.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.menu_bg));
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(true);

4. 安卓中使用的popupwindow设置默认选择哪个条目

Android PopupWindow怎么合理控制弹出位置

privatevoidshowPopupWindow(Viewparent){
if(popupWindow==null){
LayoutInflaterlayoutInflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view=layoutInflater.inflate(R.layout.group_list,null);
lv_group=(ListView)view.findViewById(R.id.lvGroup);

Collections.reverse(groups);
GroupAdaptergroupAdapter=newGroupAdapter(this,groups);
lv_group.setAdapter(groupAdapter);
popupWindow=newPopupWindow(view,200,220);
}
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(true);//设置点击屏幕其它地方弹出框消失
popupWindow.setBackgroundDrawable(newBitmapDrawable());
WindowManagerwindowManager=(WindowManager)getSystemService(Context.WINDOW_SERVICE);
intxPos=-popupWindow.getWidth()/2
+getCustomTitle().getCenter().getWidth()/2;

popupWindow.showAsDropDown(parent,xPos,4);

lv_group.setOnItemClickListener(newOnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView<?>adapterView,Viewview,
intposition,longid){
loadNew(((StringItem)(groups.get(position))).getId());
if(popupWindow!=null)
popupWindow.dismiss();
}
});
}

只需要设置proupwindows的setOutsideTouchable属性即可。
以下为示例代码
window.showAtLocation(parent, Gravity.RIGHT | Gravity.BOTTOM, 10,10);//显示位置



第一个参数指定PopupWindow的锚点view,即依附在哪个view上。
第二个参数指定起始点
第三个参数设置以起始点的右下角为原点,向左、上各偏移的像素。
自己看下API

5. 安卓popupwindow 内多列listview宽度怎么适应

1、布局的不同,有太大区别的布局肯定是区分多类的,当然这也是够累的;
2、字体使用SP单位自适应,图片采取.9图片拉伸;
3、布局使用相对布局
4、一般人不想用的权重属性,layout_weight,
5、控件长宽控制使用dip单位;

举例
Popupwindow这样创建的:new PopupWindow(maplistview,LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);

ListView中的item是一个LinearLayout,水平排列,一个Checkbox,一个Button。所有设置都是WRAP_CONTENT。但是效果却是,ListView在手机和平板上都没有自适应,手机上偏挤(Button里面总共两个字,上下排列了),平板上Button里的两个字水平排列,而且Button后面还有很大一段的空间。

答:
手机上偏挤,是因为字体大了,控件的空间小了;
平板上可以水平显示,但字的显示不是很理解,是因为没有设置字的显示位置,

建议:

进行相应的更改,如,改变字体大小,或者改变控件的长宽,
平板的话,可以先设置字体的位置,如gravity的使用;

6. 安卓中popwindow怎么在activity中生命周期中直接启动

getActivity()方法获得Activity,然后就可以使用其startActivity等了。 PopupWindow是一种不完全覆盖父窗口的View,通常一些快捷方式,使用它最合适了。

7. 使弹出popupwindow界面外部的控件不能点击

我记得popupwindow本来就不可点击被覆盖的界面。如果不行,可以设置一个全屏的activity,这个activity设置为透明,把popupwindow显示到这个透明的activity上。

8. 安卓开发popupwindow

PopupWindow 跟我们的 Activity 不一样,因为我们在构造 PW 的时候往往不是继承来的,而是 new 出来的。
所以不能使用重写 PW 的 onKeyDown() 之类的方法来截获键盘事件。
好在 PW 本身的特性让我们很容易就能做到用返回键来退出,当然我们也可以截获键盘事件,这样就有两种方法了。
最简单——
在 new 的时候,使用下面的方法:

new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, true);

关键在于最后一个参数,ADK 给出的提示是 Focusable,顾名思义就是该 PW 的 Focusable 属性,让它能够接受焦点。
当然你也可以手动设置它:

1
2

PW.setFocusable(true);
PW.setFocusableInTouchMode(true); //为了保险起见加上这句

此时实际上还是不能起作用的,网络给出的结论是,必须加入下面这行作用未知的语句才能发挥作用:

pw.setBackgroundDrawable(new BitmapDrawable()); // www.linuxidc.com响应返回键必须的语句

请放心,设置 BackgroundDrawable 并不会改变你在配置文件中设置的背景颜色或图像。
最通用——
首先在 PW 的布局文件(*.xml)中随意选取一个不影响任何操作的 View,推荐使用最外层的 Layout。
然后设置该 Layout 的 Focusable 和 FocusableInTouchMode 都为 true。
接着回到代码中,获取该 View 的实例,现在你就可以对该 View 重写 OnKeyListener() 事件了。
我们可以手动捕获 KEYCODE_BACK 给对话框 dismiss()。
给出一段示例:

private PopupWindow pw;
private View view;
private LinearLayout layMenu;

LayoutInflater inflater = (LayoutInflater) main.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.popup_main_menu, null, false);
layMenu = (LinearLayout) view.findViewById(R.id.layMenu);
pw = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, true);

layMenu.setOnKeyListener(new OnKeyListener()
{
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK)
pw.dismiss();

return false;
}
});

上面两种方法的代码可以并存,当然如果使用第一种方法的话就不需要再捕获返回键了,不过你可以尝试捕获其他你需要的按键

1. 若需要监听PopUpWindow里控件的事件,如PopUpWindow里面一个按钮的事件,那么就需要调用方法setFocusable(true)获得焦点,并且在调用setFocusable(true)方法后,可以通过Back(返回)菜单使PopUpWindow dimiss;另外调用方法setOutsideTouchable(true)后,点击PopUpWindow外面的控件也可以使得PopUpWindow dimiss。需要顺利让PopUpWindow dimiss;PopUpWindow的背景不能为空。

2. 如图:输入框EditText下面为PopUpWindow

3.设置代码如下
PopupWindow popUpWin;
popUpWin=new PopupWindow(listView,edtUserName.getWidth(),LayoutParams.WRAP_CONTENT);
//必须设置背景
popUpWin.setBackgroundDrawable(new BitmapDrawable());
//设置焦点
popUpWin.setFocusable(true);
//设置点击其他地方 就消失
popUpWin.setOutsideTouchable(true);
popUpWin.showAsDropDown(edtUserName);

<!--EndFragment-->

更多编程开发上的其他问题

你来我们群里说吧

这里是开发者互相学习交流的

有大神

让他们给你解释你的疑问 q un号: 18816 8040

9. 安卓编程:menu键呼出popupwindow,但是点击actionbar中的图标可以显示右上角的

找找actionbar的接口,应该可以拦截左上角的事件,或者就不用actionbar做。

阅读全文

与安卓popwindow相关的资料

热点内容
智慧城市大数据下载 浏览:51
fcs文件导回软件 浏览:420
宣传片是什么app 浏览:93
mac双系统win10掉线 浏览:762
高一网络课程有哪些 浏览:477
linuxppk文件 浏览:236
树型数据库 浏览:682
怎么在qq空间发文件在哪里 浏览:538
在qq群里怎么写文件 浏览:404
linux中日志xml配置文件 浏览:800
服务器共享文件权限 浏览:80
哪个网站能货到付款 浏览:876
字符串加1java 浏览:344
word文件加密然后密码忘了怎么办 浏览:235
大数据的战略意义 浏览:679
初中英语单词闯关游戏app有哪些 浏览:195
2017最新流行的app 浏览:240
整合建立大数据平台 浏览:306
js判断参数是否为空 浏览:556
港版iphone6联保吗 浏览:198

友情链接