Android 底部弹出自定义Dialog(支付宝微信选择)
16lz
2021-01-23
前言
Android 底部弹出自定义Dialog(支付宝微信选择)
之前做过很多 一直没有总结过 这次做一个总结 加深一下记忆
为别人留下一个可参考的方案
不多说 直接上gif效果图
UI希望の效果
实际の实现效果Gif
代码总结
首先写一个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 实现带清除效果的EditText(附带抖动效果)
- Android通讯录字母排序城市列表展示效果
- 实现Android水印效果
- Dialog整个窗体背景设置为透明
- Android实现水印效果
- android wheel实现各种选择效果
- Android基于TextView实现的跑马灯效果实例
- Android实现淘宝商品列表切换效果
- android退出程序 后台运行 实现退出键和home键一样的效果