PopupWindow分析

本文详细介绍了Android中PopupWindow组件的使用方法,包括不同构造方式、显示位置设置、动画效果及消失监听的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   PopupWindow总结分析:

View v = getLayoutInflater().inflate(R.layout.popwindow,null);

<span style="font-size:18px;">// 设置两种方式
// 第一种 传三个参数:1: 布局  后两个为它的宽高分布
                PopupWindow popupWindow = new PopupWindow(v, ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);

                // 这个可以控制popupwindow的隐藏,可以实现点击popupwindow以外的区域时隐藏popupwindow,
                // 还有一个功能就是响应back键。实现按back键可以隐藏popupwindow的功能。
                popupWindow.setBackgroundDrawable(new BitmapDrawable());

                // 使其他区域可以点击
                popupWindow.setOutsideTouchable(true);

                // 获取焦点 可点击
                popupWindow.setFocusable(true);
                popupWindow.setTouchable(true);

                //  1  在view下方出现  view是你选择的view,在这个view下面
//         popupWindow.showAsDropDown(view,0,0);

                // 2  自定义window的位置   view是父布局
            popupWindow.showAtLocation(view, Gravity.CENTER,0,0);</span></span>

<span style="font-size:18px;">// 第二种 传一个参数,单独设置它的宽高
                PopupWindow window =  new PopupWindow(MyActivity.this);
                window.setHeight(200);
                window.setWidth(600);
                window.setContentView(v);
                window.setOutsideTouchable(true);
                window.showAsDropDown(view, 0, 0);
</span>


     

    / / 另外设置他进入的动画效果 ,在show之前

              popupWindow.setAnimationStyle(R.style.bottomStyle);

    <style name="bottomStyle">
        <item name="android:windowEnterAnimation">@anim/bottom_pup_anim_out</item>
        <item name="android:windowExitAnimation">@anim/bottom_pup_anim_in</item>
    </style>

 在自定义文件夹anim下:

// bottom_pup_anim_out

<set xmlns:android="http://schemas.android.com/apk/res/android" >
   <translate
        android:duration="300"
        android:fromXDelta="0"
        android:fromYDelta="100%p"
        android:toXDelta="0"
        android:toYDelta="0%p" />
</set>

// bottom_pup_anim_in

<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="300"
        android:fromXDelta="0"
        android:fromYDelta="0%p"
        android:toXDelta="0"
        android:toYDelta="100%p" />
</set>


 // popupwindow  设置消失的监听
<span style="font-size:18px;">mMoreWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
            @Override
            public void onDismiss() {
                mAnContent.setBackgroundResource(R.color.white);
            }
        });</span>









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值