android 怎么实现点击屏幕其他地方popupwindow消失
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 怎么实现点击屏幕其他地方popupwindow消失相关的知识,希望对你有一定的参考价值。
我看网上问的都是怎么让他不消失,难道他默认是消失的吗?我的怎么点击屏幕其他地方,他不消失。求大神帮助。
只需要设置proupwindows的setOutsideTouchable属性即可。
以下为示例代码:
private void showPopupWindow(View parent)if (popupWindow == null)
LayoutInflater layoutInflater = (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);
GroupAdapter groupAdapter = new GroupAdapter(this, groups);
lv_group.setAdapter(groupAdapter);
popupWindow = new PopupWindow(view, 200, 220);
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(true); //设置点击屏幕其它地方弹出框消失
popupWindow.setBackgroundDrawable(new BitmapDrawable());
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
int xPos = -popupWindow.getWidth() / 2
+ getCustomTitle().getCenter().getWidth() / 2;
popupWindow.showAsDropDown(parent, xPos, 4);
lv_group.setOnItemClickListener(new OnItemClickListener()
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
int position, long id)
loadNew(((StringItem)(groups.get(position))).getId());
if (popupWindow != null)
popupWindow.dismiss();
);
参考技术A mWindow = new PopupWindow(context);
mWindow.setTouchInterceptor(new OnTouchListener()
@Override
public boolean onTouch(View v, MotionEvent event)
if (event.getAction() == MotionEvent.ACTION_OUTSIDE)
mWindow.dismiss();
return true;
return false;
);追问
m= new PopupWindow(Global.SCREEN_WIDTH/4, Global.SCREEN_HEIGHT/5);
m.setContentView(popupWindow);
下面是按你的copy下来的,字数有限制,我就省略了
我按照你的代码这样实现之后还是不行啊
mWindow.setOutsideTouchable(true);
本回答被提问者采纳android开发,在EditText中输入了数据,要求在点击屏幕其它地方后,键盘自动隐藏!请代码
自己做的程序,只有一个EditText,点屏幕其它地方或点击按钮后无法隐藏键盘,急求代码,完善解决的,再给高分!
参考技术A InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
//隐藏软键盘
imm.hideSoftInputFromWindow(tv.getWindowToken(), 0);
用tv可以是你的layout追问
是在输入后快点屏幕才隐藏的哦,不是一直隐藏。还有,代码放哪个文件里,谢谢,再麻烦下
等下试试看
追答上面的代码就放在你oncreate()里就行
imm.showSoftInputFromInputMethod(editText.getWindowToken(),
0);这个是现实软键盘
放在你EditText的Onclick事件里
能否写个完整的代码给我?
参考技术B 正常是会隐藏的,你让EditText失去焦点后就消失的啊追问关键是不行啊,大哥!帮帮我吧
参考技术C 我试了下,的确关不了键盘,只能自已手动隐藏键盘。如果要实现此功能,须:1.点击屏幕产生一个事件;
2.事件时能关闭输入法;
关注。追问
点按钮后也不能隐藏啊
追答是的,我只是设想。我是初学一周左右,许多功能不熟悉。
参考技术D 代码发出来给你看看啊追问在哪里
以上是关于android 怎么实现点击屏幕其他地方popupwindow消失的主要内容,如果未能解决你的问题,请参考以下文章
QML Popup弹窗置于最顶层,实现点击位置该弹出窗口下方的任何其他层组件,Popup弹窗都不会关闭