软录 · 2023年5月10日

安卓popwindow|安卓开发popupwindow

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(){@OverridepublicvoidonItemClick(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 属性,让它能够接受焦点。当然你也可以手动设置它:12 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下面为PopUpWindow3.设置代码如下 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做。