PopupWindow

效果图:popupWindow.gif

弹窗布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="#000"
              android:orientation="vertical">

    <Button
        android:id="@+id/btn_popup_windows_item1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:text="Item1"
        android:textSize="18sp"/>

    <Button
        android:id="@+id/btn_popup_windows_item2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:text="Item2"
        android:textSize="18sp"/>

</LinearLayout>

代码:

void showPopupWindow(View view){

        View viewpw =View.inflate(TestActivity.this,R.layout.item_popup_window_layout,null);
        Button btn1=(Button) viewpw.findViewById(R.id.btn_popup_windows_item1);

        //设置背景透明效果 (注意Background必须背景色)(范围0~255)
        viewpw.getBackground().setAlpha(100);

        //创建PopupWindow 并设置宽 高
        final PopupWindow popupWindow = new PopupWindow(viewpw,
                ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);

        //设置焦点,这样的或就可以实现点击popupWindow外部区域,关闭popupWindow
        popupWindow.setFocusable(true);

        //设置显示位置
        popupWindow.showAsDropDown(view, 60,0); //指定View的下方
        //popupWindow.showAtLocation(view, Gravity.CENTER,0,0);  //屏幕中心

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(TestActivity.this, "You click Item1", Toast.LENGTH_SHORT).show();
                popupWindow.dismiss(); //关闭 PopupWindow
            }
        });
    }
Last modification:January 14th, 2020 at 08:09 pm