美文网首页android技术
android popwindow的简单使用及一些坑

android popwindow的简单使用及一些坑

作者: 背锅TV丶伴奏大师 | 来源:发表于2021-07-01 14:54 被阅读0次

    如图要实现点击+号时,出现popwindow:


    222.png
    //anchor锚点view
    private void showSelectDialog(View anchor) {
            View outerView = LayoutInflater.from(this).inflate(R.layout.dialog_chat, null);
    //1.这里使用WRAP_CONTENT时可以根据布局大小来灵活掌握
            PopupWindow popupWindow = new PopupWindow(outerView,ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
            popupWindow.setFocusable(true);
            popupWindow.setOutsideTouchable(true);
            popupWindow.setOnDismissListener(() -> {
                Utils.changeWindowAlfa(1f, this);
            });
            
            Utils.changeWindowAlfa(0.7f, this);
            popupWindow.showAsDropDown(anchor, 0, 0, Gravity.END);
        }
    //R.layout.dialog_chat
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
    <!--2.在最外层LinearLayout设置精确的宽高值是无效的,所以里面需要再包裹一层-->
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    <!--3.此处的宽高才是真正在屏幕上显示的大小,具体为图中红点的2和3-->
        <LinearLayout
            android:layout_width="@dimen/dp_120"
            android:layout_height="@dimen/dp_120"
            android:paddingStart="@dimen/dp_10"
    <!--4.此处的marginEnd才是真正距离屏幕右侧的大小,具体为图中红点的1-->
            android:layout_marginEnd="@dimen/dp_20"
            android:background="@drawable/bg_chat_main"
            android:orientation="vertical">
            <TextView
                android:id="@+id/tv_my_card"
                android:layout_width="wrap_content"
                android:layout_marginTop="@dimen/dp_25"
                android:textColor="@color/color_333333"
                android:textSize="@dimen/sp_16"
                android:drawablePadding="@dimen/dp_5"
                android:drawableStart="@drawable/icon_my_card"
                android:layout_height="wrap_content"
                android:text="@string/wo_de_ming_pian"/>
            <TextView
                android:id="@+id/tv_scan"
                android:layout_width="wrap_content"
                android:layout_marginTop="@dimen/dp_25"
                android:textColor="@color/color_333333"
                android:textSize="@dimen/sp_16"
                android:drawablePadding="@dimen/dp_5"
                android:drawableStart="@drawable/icon_scan"
                android:layout_height="wrap_content"
                android:text="@string/sao_yi_sao"/>
        </LinearLayout>
    </LinearLayout>
    

    注意代码中1,2,3,4的注释,助你灵活掌握popwindow的大小和间距。

    相关文章

      网友评论

        本文标题:android popwindow的简单使用及一些坑

        本文链接:https://www.haomeiwen.com/subject/quvjultx.html