Android原生Dialog、自定义Dialog 多种弹窗(列表展示、带按钮、标题、自定义dialog等)各式各样的dialog都能满足你 | 您所在的位置:网站首页 › 小米安卓原生文字 › Android原生Dialog、自定义Dialog 多种弹窗(列表展示、带按钮、标题、自定义dialog等)各式各样的dialog都能满足你 |
各种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(); }这个弹窗列表信息的展示,如图: 这种弹窗是最常见的,因为很多界面在不要求美观的情况下,都会选择这种弹窗,这种弹窗有标题、正文、确认、取消这种按钮 不多说,上代码和效果图—— //弹出框 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); }效果图如下: 这类是正常项目开发中都需要使用的,因为一般原生的弹窗在美观上就不被美工和客户接收,这就需要自定义布局来展示弹窗内容 上代码: 我简单的封了下 ** * 自定义弹出对话框 */ 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 实验室设备网 版权所有 |