前言

Android 底部弹出自定义Dialog(支付宝微信选择)
之前做过很多 一直没有总结过 这次做一个总结 加深一下记忆
为别人留下一个可参考的方案
不多说 直接上gif效果图

UI希望の效果

Android 底部弹出自定义Dialog(支付宝微信选择)_第1张图片

实际の实现效果Gif

Android 底部弹出自定义Dialog(支付宝微信选择)_第2张图片

代码总结

首先写一个dialogDemo继承Dialog
需要实现构造方法 选择2参的即可 传一个上下文和一个dialog主题
剩下的就按照流程写

/** * @author lyudony * @date 2020/8/4. * description:支付方式dialog */public class PayTypesDialog extends Dialog {    private Unbinder mUnbinder;    @BindView(R.id.iv_pay_type_weixin)    ImageView mIvWeiChatPay;    @BindView(R.id.iv_pay_type_zhifubao)    ImageView mIvZhiFuBaoPay;    //dialog构造方法 实现时需要传上下文和一个dialog主题    public PayTypesDialog(@NonNull Context context, int themeResId) {        super(context, themeResId);    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.dialog_pay);        mUnbinder = ButterKnife.bind(this);        //设置基本属性        Window dialogWindow = getWindow();        //设置在底部显示        dialogWindow.setGravity(Gravity.BOTTOM);        WindowManager.LayoutParams lp = dialogWindow.getAttributes();        //设置宽度和手机持平        lp.width = AbsListView.LayoutParams.MATCH_PARENT;        lp.y = 0;//设置Dialog距离底部的距离        dialogWindow.setAttributes(lp);    }    @OnClick({R.id.iv_pay_type_weixin, R.id.iv_pay_type_zhifubao,     R.id.tv_zhifubao, R.id.tv_weixin, R.id.btn_confirm})    public void onClick(View view) {        switch (view.getId()) {            case R.id.tv_weixin://选择微信            case R.id.iv_pay_type_weixin:                mIvWeiChatPay.setSelected(true);                mIvZhiFuBaoPay.setSelected(false);                break;            case R.id.tv_zhifubao://选择支付宝            case R.id.iv_pay_type_zhifubao:                mIvZhiFuBaoPay.setSelected(true);                mIvWeiChatPay.setSelected(false);                break;            case R.id.btn_confirm:                //选择提现方式                if (mIvZhiFuBaoPay.isSelected()) {                    ToastUtils.showShort(getContext(), "选择了支付宝");                } else if (mIvWeiChatPay.isSelected()) {                    if (!StringUtils.isWxAppInstalledAndSupported(getContext())) {                        ToastUtils.showShort(getContext(), "请先安装微信");                    } else {                        ToastUtils.showShort(getContext(), "选择了微信 ");                    }                }                break;        }    }}

XML布局参考

<?xml version="1.0" encoding="utf-8"?>                            

设置主题style

如果不设置这一步 dialog显示出来就不是和父窗体持平的效果
也不会在父窗体的最下面 我之前就没有设置这个属性 导致一直不是自己想要的效果!

 

使用方法

so easy!!!

  //点击弹出支付方式  PayTypesDialog payTypesDialog = new PayTypesDialog(this,R.style.pay_type_dialog);  payTypesDialog.show();

有问题,望多指教!

共勉

我要一步一步往上爬
在最高点乘着叶片往前飞
任风吹干流过的泪和汗
我要一步一步往上爬
等待阳光静静看着它的脸
小小的天有大大的梦想
我有属于我的天
任风吹干流过的泪和汗
总有一天我有属于我的天
Android 底部弹出自定义Dialog(支付宝微信选择)_第3张图片

更多相关文章

  1. android 实现带清除效果的EditText(附带抖动效果)
  2. Android通讯录字母排序城市列表展示效果
  3. 实现Android水印效果
  4. Dialog整个窗体背景设置为透明
  5. Android实现水印效果
  6. android wheel实现各种选择效果
  7. Android基于TextView实现的跑马灯效果实例
  8. Android实现淘宝商品列表切换效果
  9. android退出程序 后台运行 实现退出键和home键一样的效果

随机推荐

  1. React native 及 Android(安卓)测试(真机
  2. Android开发中调用Spring CXF整合发布的W
  3. Android(安卓)WMS分析(一) WindowManager
  4. Android开发(1)——项目结构
  5. android source 把自己的apk 编译进 syst
  6. android 局部界面动态切换
  7. android 技术经验归纳
  8. Android中Message传递参数(bundle setDat
  9. Android(安卓)Jetpack-Navigation改造使
  10. [中英文对照]android Designing for TV(