弹出PopuoWindow后 代码里设置的是PopupWindow默认获取焦点 所以PopupWindow显示的时候其它控件点击是没有反应的
用到的方法是
pwMyPopWindow.setFocusable(true);
代码里还设置了
pwMyPopWindow.setBackgroundDrawable(this.getResources().getDrawable(
R.mipmap.ic_launcher));// 设置背景图片,不能在布局中设置,要通过代码来设置
pwMyPopWindow.setOutsideTouchable(true);// 触摸popupwindow外部,popupwindow消失。这个要求你的popupwindow要有背景图片才可以成功
这样点击PopupWindow外部就会自行消失
当我们弹出PopupWindow的时候让背景变半透明 当PopuuWindow消失时让背景变回原样 这样就实现了多数app中PouupWindow的使用效果
用到的方法是
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.alpha = bgAlpha; //0.0-1.0
getWindow().setAttributes(lp);
下面是代码
<RelativeLayout xmlns:andro>
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="#ffffff" >
<LinearLayout
android:id="@+id/ll_head_bar"
android:layout_width="wrap_content"
android:layout_height="400dp"
android:orientation="vertical">
<!--这个图片按钮按下时弹出PopupWindow-->
<ImageButton
android:id="@+id/ib_operate_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher" />
<!--这个按钮是测试当PoupWindow显示时点击此按钮没反应 因为此按钮没获取焦点-->
<Button
android:layout_marginTop="200dp"
android:layout_gravity="bottom"
android:id="@+id/ib_operate_more2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试按钮" />
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:andro>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_list_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:minHeight="40dp"
android:minWidth="120dp"
android:textSize="20sp"
/>
</LinearLayout>