dialogx,给大家推荐一个开源安卓弹窗组件。 您所在的位置:网站首页 安卓机顶盒软件弹窗清理 dialogx,给大家推荐一个开源安卓弹窗组件。

dialogx,给大家推荐一个开源安卓弹窗组件。

2023-08-25 09:18| 来源: 网络整理| 查看: 265

DialogX优势

对话框是一个软件对用户操作进行响应、反馈的重要组件,而 DialogX 将可以协助开发者快速完成这些事务。

我们力求减少开发者所需要担心的,所需要顾虑的,而打造一款可以在任意时间,任意情况都能轻松使用的对话框组件。

在轻松使用的前提下,DialogX 提供了更多的个性接口方便开发者进行扩展,包括在对话框内插入自定义布局,亮暗色模式的切换,甚至自定义更符合 App UI 的自定义主题。

开源地址:https://github.com/kongzue/DialogX

✅DialogX的特性: DialogX 采用全新的实现方式,默认 View 实现方式更为轻便,亦可选 Window、DialogFragment 实现方式,自由灵活。DialogX 的启动与线程无关,你可以在任意线程启动 DialogX 而它都将自动在 UI 线程运行。DialogX 的启动无需 context 参数,默认提供静态方法一句代码实现对话框的启动,使用更加方便。 更自由,开发者可以轻松定制对话框中任何组件的样式,包括文本样式、按钮文字样式、菜单文本样式、输入文本样式,大到标题,小到提示消息都可以根据需要随意修改。DialogX 采用主题分离设计,默认自带 Material 主题,可选引入 IOS、Kongzue、MIUI 等其他风格主题,大大减小 App 体积,同时提供了主题接口,如有定制需求完全可以自行实现一套私有主题。更低的耦合度,更少的问题,DialogX 可以在对话框正在运行的过程中随意关闭 Activity ,而无需担心以往 AlertDialog 等组件会引发的 WindowLeaked 错误。更流畅的体验,DialogX 的动画效果更加丰富,对话框启动动画采用非线性动画实现,更自带连贯的等待提示到完成错误动画过渡效果,让你的 APP 更具动感。所有主题默认支持亮暗色两种模式,只需一键配置即可实现亮暗色的对话框主题切换,更有自由的布局内容满足定制化需求,DialogX 也支持自动适应系统亮暗色模式切换,能够根据系统设置自动判断亮暗色显示效果的切换。轻松的实现对话框的生命周期管控以及沉浸式适配。 引入 allprojects { repositories { google() jcenter() maven { url 'https://jitpack.io' } //增加 jitPack Maven 仓库 } } 1.gradle中加入 //https://github.com/kongzue/DialogX def dialogx_version = "0.0.45" implementation "com.github.kongzue.DialogX:DialogX:${dialogx_version}" implementation "com.github.kongzue.DialogX:DialogXIOSStyle:${dialogx_version}" implementation "com.github.kongzue.DialogX:DialogXKongzueStyle:${dialogx_version}" implementation "com.github.kongzue.DialogX:DialogXMIUIStyle:${dialogx_version}" 2.Application中加入 DialogX.init(this) DialogX.globalStyle = IOSStyle.style() 我举例一些常用用法 消息提示框(点击确定) DialogX.globalStyle = IOSStyle.style(); MessageDialog.show("标题", "这里是正文内容。", "确定") .setOkButton(new OnDialogButtonClickListener() { @Override public boolean onClick(MessageDialog baseDialog, View v) { PopTip.show("点击确定按钮"); return false; } });

在这里插入图片描述

选择对话框 DialogX.globalStyle = IOSStyle.style(); MessageDialog messageDialog = new MessageDialog("多选对话框", "移除App会将它从主屏幕移除并保留其所有数据。", "删除App", "取消", "移至App资源库") .setButtonOrientation(LinearLayout.VERTICAL); if (!rdoMiui.isChecked()) { messageDialog.setOkTextInfo(new TextInfo().setFontColor(Color.parseColor("#EB5545")).setBold(true)); } messageDialog.show();

在这里插入图片描述

输入框(文本输入) DialogX.globalStyle = MaterialStyle.style(); btnInputDialog.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new InputDialog("标题", "正文内容", "确定", "取消", "正在输入的文字") .setInputText("Hello World") .setOkButton(new OnInputDialogButtonClickListener() { @Override public boolean onClick(InputDialog baseDialog, View v, String inputStr) { PopTip.show("输入的内容:" + inputStr); return false; } }) .show(); } });

在这里插入图片描述

弹提示窗(成功/失败) //正确 TipDialog.show(msg, WaitDialog.TYPE.SUCCESS) //错误 TipDialog.show(msg, WaitDialog.TYPE.ERROR)

在这里插入图片描述

在这里插入图片描述

消息提示(Toast) DialogX.globalStyle = MaterialStyle.style(); PopTip.show("这是一个提示"); PopTip.show(R.mipmap.img, "一个提示").setAutoTintIconInLightOrDarkMode(false).showLong();

在这里插入图片描述

菜单(多选一) //view是指显示在哪个view上面 DialogX.globalStyle = MaterialStyle.style(); PopMenu.show(view, new String[]{"选项1", "选项2", "选项3"}) .setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onClick(PopMenu dialog, CharSequence text, int index) { btnSelectMenu.setText(text); return false; } }); //设置菜单并且给菜单设置图标 DialogX.globalStyle = MaterialStyle.style(); PopMenu.show(new String[]{"添加", "编辑", "删除", "分享"}) .setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onClick(PopMenu dialog, CharSequence text, int index) { if (index==0){ dialog.setMenuList(new String[]{"A","B","C"}); return true; } return false; } }) .setOnIconChangeCallBack(new OnIconChangeCallBack(true) { @Override public int getIcon(PopMenu dialog, int index, String menuText) { switch (menuText) { case "添加": return R.mipmap.img_dialogx_demo_add; case "编辑": return R.mipmap.img_dialogx_demo_edit; case "删除": return R.mipmap.img_dialogx_demo_delete; case "分享": return R.mipmap.img_dialogx_demo_share; default: return 0; } } });

在这里插入图片描述 在这里插入图片描述

底部自定义滑动布局 List list = new ArrayList(); list.add(new CustomRecycleViewAdapter.Data("Item Text 1")); list.add(new CustomRecycleViewAdapter.Data("Item Text 2")); list.add(new CustomRecycleViewAdapter.Data("Item Text 3")); list.add(new CustomRecycleViewAdapter.Data("Item Text 4")); list.add(new CustomRecycleViewAdapter.Data("Item Text 5")); list.add(new CustomRecycleViewAdapter.Data("Item Text 6")); list.add(new CustomRecycleViewAdapter.Data("Item Text 7")); list.add(new CustomRecycleViewAdapter.Data("Item Text 8")); list.add(new CustomRecycleViewAdapter.Data("Item Text 9")); list.add(new CustomRecycleViewAdapter.Data("Item Text 10")); list.add(new CustomRecycleViewAdapter.Data("Item Text 11")); list.add(new CustomRecycleViewAdapter.Data("Item Text 12")); list.add(new CustomRecycleViewAdapter.Data("Item Text 13")); list.add(new CustomRecycleViewAdapter.Data("Item Text 14")); DialogX.globalStyle = MaterialStyle.style(); BottomDialog.build() .setCustomView(new OnBindView(R.layout.layout_custom_recycleview) { @Override public void onBind(BottomDialog dialog, View v) { RecyclerView recyclerView = (RecyclerView) v.findViewById(R.id.recycleView); LinearLayoutManager layoutManager = new LinearLayoutManager(me); recyclerView.setLayoutManager(layoutManager); CustomRecycleViewAdapter adapter = new CustomRecycleViewAdapter(list); recyclerView.setAdapter(adapter); } }) .show();

在这里插入图片描述

自定义对话框 CustomDialog.show(new OnBindView(R.layout.layout_custom_dialog) { @Override public void onBind(final CustomDialog dialog, View v) { ImageView btnOk = v.findViewById(R.id.btn_ok); btnOk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); } }) .setMaskColor(getResources().getColor(R.color.black30));

在这里插入图片描述

对话框显示在按钮上 CustomDialog.show(new OnBindView(R.layout.layout_custom_dialog_align) { private TextView btnSelectPositive; @Override public void onBind(final CustomDialog dialog, View v) { btnSelectPositive = v.findViewById(R.id.btn_selectPositive); btnSelectPositive.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PopTip.show("我知道了"); dialog.dismiss(); } }); } }) .setCancelable(false) .setMaskColor(getResources().getColor(R.color.black30)) .setEnterAnimResId(R.anim.anim_custom_pop_enter) .setExitAnimResId(R.anim.anim_custom_pop_exit) .setAlignBaseViewGravity(view, Gravity.TOP) //显示在view上 .setBaseViewMarginBottom(-dip2px(45)) .show();

在这里插入图片描述

还有更多功能大家自己试验吧。

开源地址:https://github.com/kongzue/DialogX

我的Github:github.com/yutils 我的CSDN:https://blog.csdn.net/Yu1441 感谢关注微博:细雨若静 我的QQ:3373217 (可技术交流)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有