Android原生Dialog、自定义Dialog 多种弹窗(列表展示、带按钮、标题、自定义dialog等)各式各样的dialog都能满足你 您所在的位置:网站首页 小米安卓原生文字 Android原生Dialog、自定义Dialog 多种弹窗(列表展示、带按钮、标题、自定义dialog等)各式各样的dialog都能满足你

Android原生Dialog、自定义Dialog 多种弹窗(列表展示、带按钮、标题、自定义dialog等)各式各样的dialog都能满足你

2024-07-17 18:51| 来源: 网络整理| 查看: 265

各种Dialog 原生弹窗 MaterialDialog还是原生弹窗 AlertDialog最后就是自定义Dialog

原生弹窗 MaterialDialog

屁话不多直接上代码,看效果:

private void showUpdateThemeDialog() { String[] themes ={"天真浪漫","青青草原", "酷炫黑暗", "热情似火", "蓝天白云", "紫情满满", "活力鲜橙", "棕色安然"}; new MaterialDialog.Builder(mContext) .title("选择主题") .titleGravity(GravityEnum.CENTER) .items(themes) // .titleColorRes(R.color.material_red_500) //标题颜色 .contentColor(Color.BLACK) //注意文字颜色没有“res”后缀 .linkColorAttr(R.attr.aboutPageHeaderTextColor) // 注意,attr用于属性解析,而不是none或res .dividerColorRes(R.color.colorMainDateBg) // .backgroundColorRes(R.drawable.dialog_backgroud)//背景色 // .positiveColorRes(R.color.material_red_500) .neutralColorRes(R.color.colorControlNormal) // .widgetColorRes(R.color.colorControlNormal)//选中颜色 .negativeText("取消") // .customView(R.layout.activity_dialog,true) .itemsCallbackSingleChoice(0,(dialog, itemView, position, text) -> { ThemeManager.getInstance().setTheme(mActivity, themes[position]); dialog.dismiss(); return false; }).show(); }

这个弹窗列表信息的展示,如图: 在这里插入图片描述 如果需求跟这个差不多,可以选则这种dialog

还是原生弹窗 AlertDialog

这种弹窗是最常见的,因为很多界面在不要求美观的情况下,都会选择这种弹窗,这种弹窗有标题、正文、确认、取消这种按钮

不多说,上代码和效果图——

//弹出框 private void showDialog() { AlertDialog dialog = new AlertDialog.Builder(this) .setMessage("您输入的原密码错误,请点击确认重新输入,如忘记密码,请点击忘记密码按钮进行修改") .setPositiveButton("确定", null) .setNeutralButton("忘记密码",null) .create(); dialog.show(); Button button1=dialog.getButton(AlertDialog.BUTTON_NEGATIVE); button1.setTextColor(ContextCompat.getColor(this, R.color.dialog_button1)); Button button = dialog.getButton(AlertDialog.BUTTON_POSITIVE); LinearLayout.LayoutParams cancelBtnPara = (LinearLayout.LayoutParams) button.getLayoutParams(); //设置按钮的大小 cancelBtnPara.height = LinearLayout.LayoutParams.WRAP_CONTENT; cancelBtnPara.width = LinearLayout.LayoutParams.MATCH_PARENT; //设置文字居中 cancelBtnPara.gravity = Gravity.CENTER; //设置按钮左上右下的距离 cancelBtnPara.setMargins(125, 10, 125, 10); button.setLayoutParams(cancelBtnPara); button.setBackground(ContextCompat.getDrawable(this, R.color.white)); button.setTextColor(ContextCompat.getColor(this, R.color.dialog_button)); button.setTextSize(16); }

效果图如下: 在这里插入图片描述 在这里插入图片描述 这种弹出是最常见的,相信很多人都会用到。

最后就是自定义Dialog

这类是正常项目开发中都需要使用的,因为一般原生的弹窗在美观上就不被美工和客户接收,这就需要自定义布局来展示弹窗内容

上代码: 我简单的封了下

** * 自定义弹出对话框 */ public class ButtomDialogView extends Dialog { private Context context; private OnDialogClickListener onDialogClickListener; public ButtomDialogView(Context context) { super(context, R.style.dialog); this.context = context; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); View view = getLayoutInflater().inflate(R.layout.module_layout_dialog_image, null); TextView linear1 = (TextView) view.findViewById(R.id.tv_iknow); linear1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (onDialogClickListener != null) { onDialogClickListener.onclick1(); } }); setContentView(view);//这行一定要写在前面 setCancelable(true);//点击外部不可dismiss setCanceledOnTouchOutside(true); Window window = this.getWindow(); window.setGravity(Gravity.CENTER); WindowManager.LayoutParams params = window.getAttributes(); params.width = WindowManager.LayoutParams.MATCH_PARENT; params.height = WindowManager.LayoutParams.WRAP_CONTENT; window.setAttributes(params); } public void setOnDialogClickListener(OnDialogClickListener onDialogClickListener) { this.onDialogClickListener = onDialogClickListener; } public interface OnDialogClickListener{ void onclick1(); } }

布局代码:

最后就是在Activity或者fragment中用就行了,调用这个方法

private void toChooseIcon() { if (dialogView == null) { dialogView = new ButtomDialogView(getActivity()); dialogView.setOnDialogClickListener(new ButtomDialogView.OnDialogClickListener() { @Override public void onclick1() { //这里可以写你需要的操作就行了 dialogView.dismiss();//关闭弹窗 } dialogView.show(); }

上一波效果图吧

在这里插入图片描述

还有其他的弹窗效果可以自己在布局里面设置就行!

在这里插入图片描述 希望我的博客能帮到你!!! 谢谢采纳!!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

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