- 浏览: 120470 次
- 性别:
- 来自: 广州
文章分类
最新评论
- popWinPlaylist.showAtLocation(vv_main, Gravity.TOP|Gravity.LEFT, 0, 150);
- popWinPlaylist.setFocusable(true);
- popWinPlaylist.update();
popWinPlaylist.showAtLocation(vv_main, Gravity.TOP|Gravity.LEFT, 0, 150); popWinPlaylist.setFocusable(true); popWinPlaylist.update();
这下出现了 popupwindow 意外的地方不能点击了,那么看一下文章吧
最近项目中有用PopupWindow。我在其中添加一个ListView放入PopupWindow中,然后对对PopupWindow设置了setFocusable(true)让PopupWindow获得了焦点。初始化PopupWindow
- parameterView=this.getLayoutInflater().inflate(R.layout.parameterpopup, null);
- parametPopLayout=(LinearLayout)parameterView.findViewById(R.id.parametPopLayout);
- parameter_list=(ListView)parameterView.findViewById(R.id.parameter_list);
- parameterPop = new PopupWindow(parameterView, 140, ViewGroup.LayoutParams.WRAP_CONTENT);
- parameterPop.setOutsideTouchable(true);
这时候问题来了当你点击页面中其它控件是无法响应的。发现很多人都有遇到这个困惑。其实你可以通过pw(PopupWindow对象).getContextView()拿到他的父视图。然后通过给父视图注册事件 让pw失去焦点 。我项目中是通过一个按钮点击之后显示pw.如下:
实例化按钮
- parameterPop.setOutsideTouchable(true);
- selectListAdapter adapter1=new selectListAdapter(this,showItem);
- parameter_list.setAdapter(adapter1);
- parameter_list.setOnItemClickListener(new OnItemClickListener(){
- @Override
- public void onItemClick(AdapterView<?> parent, View view,
- int position, long id) {
- // TODO Auto-generated method stub
- parameterPop.dismiss();
- }
- });
- if(parameterPop.isShowing()){
- parameterPop.dismiss();
- }else{
- showPop=true;
- parameterPop.showAtLocation(v, Gravity.LEFT, 10, 40);
- parameterPop.setFocusable(true);
- parameterPop.update();
- //做一个不在焦点外的处理事件监听
- parameterPop.getContentView().setOnTouchListener(new OnTouchListener(){
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- // TODO Auto-generated method stub
- parameterPop.setFocusable(false);
- parameterPop.dismiss();
- return true;
- }
- });
- }
从而解决了这个问题。还有一个问题就是如果当Pw显示之后。你想按返回等系统键也是无法响应的。那我们应该如何来处理咧?相信看了上面代码的应该会明白。要响应谁就交给谁。setFocusable(true)此时已经让Pw获取了焦点。解决办法:因为Pw里放置了ListView。可以利用setOnKeyListener对Pw里的ListView 设置监听代码如下:
- parameter_list.setOnKeyListener(new OnKeyListener(){
- @Override
- public boolean onKey(View v, int keyCode, KeyEvent event) {
- // TODO Auto-generated method stub
- parameterPop.dismiss();
- return false;
- }
- });
就能解决当Pw显示时 无法响应按手机返回等键了!
发表评论
文章已被作者锁定,不允许评论。
-
stopSelf()与stopSelf(startId)的区别
2016-04-14 14:44 1106startId:表示启动服务的次数 stopSelf(sta ... -
安装/卸载/替换成功广播接收
2016-01-08 11:59 789<receiver android:name=" ... -
ContentProivder
2015-12-09 09:26 486ContentProvider 我们实现了其中的几个方法 ... -
Android获取网络时间
2015-11-19 11:27 11751、实时获取: LocationManager locatio ... -
android animation知识
2015-11-14 11:47 574<?xml version="1.0" ... -
代码中设置android:drawableTop等
2015-11-14 10:42 1016btnAttachment.setCompoundDrawab ... -
自定义View
2015-11-04 15:09 400一般来说,自定义View都会去重写onMeasure()方法, ... -
SimpleOnGestureListener
2015-11-04 12:03 539onScroll()缓慢滑动,手指滑动屏幕的过程中执行; on ... -
设置dialog在底部并宽度全屏显示
2015-11-02 11:53 2288pickerDialog.setContentView(vie ... -
横竖屏切换使用 android:configChanges="orientation|keyboardHidden"无效
2015-10-29 10:51 1778在之前的版本中都是在Manifest文件中设置Activity ... -
Dialog注意点
2015-10-28 17:14 510dialog:setCancelable与setCancele ... -
清除setBackgroundResource的原有值
2015-10-23 16:50 1157setBackgroundResource(0);清除原有的s ... -
接收隐式意图
2015-10-22 11:29 543想接收隐式意图,必须在他们的意图过滤器中配有:android. ... -
严苛模式
2015-10-14 20:25 1373//启用严苛模式,StrictMode可以用于捕捉发生在应用程 ... -
Android使用Animation完成动画保留最后一帧的办法
2015-09-08 10:43 2417在动画效果的xml中,在set标签中加上一条android:f ... -
控件getHeight和getWidth等于0的解决办法
2015-09-07 17:27 1420//监听layoutContainer是否初始化完成 l ... -
Service和Thread的区别?
2015-08-19 13:25 494servie是系统的组件,它由系统进程托管(servicema ... -
避免内存泄露
2015-08-18 19:21 4791、尽量避免在Activity使用static。 2、能使用A ... -
需要context的时候用activity还是application?
2015-08-17 17:02 747需要context的时候用activity还是applicat ... -
谈谈UI中, Padding和Margin有什么区别?
2015-08-10 17:18 1097Padding 文字对边框, margin是控件与控件之间的距 ...
相关推荐
本篇将详细介绍如何在用户点击`ListView`时弹出一个包含`PopupWindow`的弹出框,并且这个`PopupWindow`内还具有`ListView`的右滑删除功能。 首先,我们需要创建`PopupWindow`。`PopupWindow`的构造函数通常接收三个...
为了实现点击外部区域关闭`PopupWindow`,我们需要在创建`PopupWindow`时设置`touchable`属性为`true`,并添加一个触摸监听器,监听到外部触摸事件时调用`dismiss()`方法。对于Back键取消,我们可以在`Activity`中...
在Android开发中,`PopupWindow`是一个非常实用的组件,它可以用来创建弹出式窗口,为用户提供临时的信息或者交互操作。本示例“PopupWindow_ListView_Singleselect.zip”主要展示了如何结合`PopupWindow`与`...
在Android开发中,`PopupWindow`是一个非常实用的组件,它可以用来实现各种形式的弹出窗口,如下拉菜单、提示框等。本教程将详细讲解如何使用`PopupWindow`来创建一个以`ListView`形式展示的菜单。首先,我们需要...
4. **交互**:默认情况下,`PopupWindow`不响应触摸事件,可以通过设置`setFocusable(true)`使其可聚焦,从而能够响应触摸事件和键盘事件。 `ListView`是Android中的一个列表视图控件,用于展示大量数据的列表。它...
3. **处理ListView的事件**:为了响应用户的点击事件,可以为`ListView`设置一个`OnItemClickListener`,在`onItemClick()`方法中执行相应的逻辑。 结合`PopupWindow`与`ListView`的示例代码可能如下: ```java //...
`PopupWindow`是Android系统提供的一个轻量级窗口,它可以显示在屏幕上的任意位置,用于创建浮动、弹出式的UI组件。在本教程中,我们将深入探讨如何使用`PopupWindow`来构建一个以`ListView`形式展示的菜单。 首先...
点击ListView弹出PopupWindow仿腾讯新闻
在Android开发中,PopupWindow是一个非常实用的组件,它能够创建一个浮动的窗口,通常用于在主界面之上显示一些临时性的信息或者交互操作。在这个场景中,我们将探讨如何在PopupWindow中使用ListView来展示数据,并...
本文将深入探讨如何在PopupWindow中显示一个自适应的ListView,使内容可以根据数据源动态调整。 首先,我们需要了解PopupWindow的基本用法。PopupWindow类在`android.widget.PopupWindow`包中,通过实例化...
通过以上步骤,你就可以在PopupWindow中集成一个可动态跳跃item的ListView了。这个功能可以用于创建各种有趣的交互,如搜索建议、下拉菜单等。注意在实际应用中,要充分考虑用户体验和性能,避免不必要的计算和过度...
在Android开发中,PopupWindow是一个非常实用的组件,它能够创建一种浮现在当前视图之上的窗口效果,常用于实现下拉菜单、提示框等。本篇将详细讲解如何利用PopupWindow实现一个具有泡泡效果,并且包含ListView的...
结合ListView和PopupWindow,我们可以创建一个类似微信下拉菜单的交互体验,用户在某个操作后(如点击按钮)弹出包含多个选项的PopupWindow,每个选项对应ListView的一个列表项。通过这种方式,开发者可以为用户提供...
为了实现在PopupWindow中显示ListView,首先需要创建一个PopupWindow对象。以下是一段示例代码: ```java private void popAwindow(View parent) { if (window == null) { LayoutInflater layoutInflater = ...
在Android开发中,创建一个类似美团、淘宝或百度糯米的多级分类菜单是常见的需求,这种功能能够提供用户友好的导航体验。本文将详细介绍如何利用`PopupWindow`结合两个`ListView`来实现这一效果。 首先,`...
在Android开发中,`PopupWindow`是一个非常实用的组件,它可以用来创建弹出式窗口,通常用于实现下拉菜单、提示信息等效果。本示例着重讲解如何将`ListView`嵌套在`PopupWindow`中,并解决`ListView`宽度自适应的...
在Android开发中,PopupWindow是一种常用的UI组件,它可以在屏幕上的任意位置弹出一个窗口,通常用于实现下拉菜单、浮层提示等效果。当需要在PopupWindow中展示ListView时,自适应屏幕尺寸和内容是必不可少的技术...
2. 设计布局:为ListView的每一项创建一个布局文件,这将决定每个条目的外观。 3. 绑定数据:在Activity或Fragment中实例化Adapter,传入数据集,然后设置给ListView的`setAdapter()`方法。 接下来是GridView,它与...
`PopupWindow`是Android中的一个类,它允许开发者创建可弹出的窗口,这种窗口可以在屏幕上的任意位置显示,并且可以设置背景透明或者不透明,适合用来创建各种临时的、浮动的UI元素。在我们的场景中,`PopupWindow`...
AndroidListView+PopupWindow实现item点击弹出PopupWindow 博客地址:https://blog.csdn.net/dreams_deng/article/details/104618270