Android:封装一个通用PopupWindow

1 篇文章 0 订阅
1 篇文章 0 订阅

最近更新:

  • 2020-07-24,解决setOutsideTouchable无效问题。最终效果:PopupWindow显示时,点击外部视图不可取消PopupWindow的显示。
  • 2020-07-23,重构项目,简化CommonPopupWindow的使用方式。

简介:

  • 链式调用的方式,满足基础的开发需求;
  • 双弹框场景,可自定义window alpha;
  • 解决setOutsideTouchable无效问题;

demo效果图如下:
在这里插入图片描述

使用:

1.在project的build.gradle文件中添加
maven { url 'https://jitpack.io' }
2.在app的build.gradle文件中添加:
implementation 'com.github.jjjSilence:SmartPopupWindow:1.0.1'
3.具体示例:
new CommonPopupWindow.PopupWindowBuilder(MainActivity.this)
                        .setContent(R.layout.popupwindow_view)
                        .setLayoutWrapContent()
                        .setOutsideTouchDismiss(false)
                        .setOnInitCallback(new OnInitCallback() {
                            @Override
                            public void onInit(@NonNull View view, @NonNull final CommonPopupWindow commonPopupWindow) {
                                TextView textView = view.findViewById(R.id.text);
                                textView.setText("点此消失,点击外部不消失");
                                textView.setOnClickListener(new View.OnClickListener() {
                                    @Override
                                    public void onClick(View v) {
                                        commonPopupWindow.dismiss();
                                    }
                                });
                            }
                        })
                        .setOnShowListener(new OnShowListener() {
                            @Override
                            public void onShow(View view, CommonPopupWindow popupWindow) {
                                
                            }
                        })
                        .setOnDismissListener(new OnDismissListener() {
                            @Override
                            public void onDismiss(View view, CommonPopupWindow popupWindow) {
                                
                            }
                        })
                        .create()
                        .showAtLocation(Gravity.CENTER);

点击此处看完整示例文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值