可以自定义布局的对话框---CommonDialog
来源:互联网 发布:网络教育本科毕业论文 编辑:程序博客网 时间:2024/05/20 09:44
一直以来Android中弹出对话框的布局都是个问题,自带的布局基本无法满足开发使用,一个项目中可能会弹出很多对话框,而且这些对话框的布局都不一样,每次都去自定义一个dialog类有很麻烦,所以这里分享一个我在自己项目中写的可以自定义布局的通用的dialog,每次只需要写一个布局就可以了,不需要每次都去自定义类,用上去感觉和popupwindow很相似,但又不需要自己让背景变半透明,很好用。废话不多说了上代码:第一步 、自定义的类:package com.ytd.finding.widget;import android.app.Dialog;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import com.ytd.finding.R;public class CommonDialog extends Dialog {public CommonDialog(Context context) {super(context);}public CommonDialog(Context context, int theme) {super(context, theme);}public static abstract class Builder {private Context context;final CommonDialog dialog;public Builder(Context context) {this.context = context;dialog = new CommonDialog(context, R.style.Dialog);}public View getView(int layoutId) {LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);View layout = inflater.inflate(layoutId, null);dialog.addContentView(layout, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));return layout;}public CommonDialog build(int layoutId){onViewCreated(getView(layoutId),dialog);return dialog;}abstract public void onViewCreated(View view,Dialog dialog);}}第二步、定义一个style: //这个style一定不要忘了如下:<style name="Dialog" parent="android:style/Theme.Dialog"><item name="android:background">#00000000</item><item name="android:windowBackground">@android:color/transparent</item><item name="android:windowNoTitle">true</item><item name="android:windowIsFloating">true</item></style>第三步、在实战中的使用private void showDialog() {CommonDialog dialog = new CommonDialog.Builder(this) {@Overridepublic void onViewCreated(View view, Dialog dialog) {//在这里可以初始化布局中的控件,以及点击事件等,所需要在对话框中的操作。。。// findViewById().....}}.build(R.layout.dialog_waiting);//这里是自定义的布局文件资源dialog.setCancelable(false);dialog.setCanceledOnTouchOutside(false);dialog.show();}第四步、写定义的布局文件这个布局文件的最外层是一个FragmeLayout 背景色不做任何处理对话框弹出的样式是 LinearLayout布局的样式和内容<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:clickable="true"android:orientation="vertical"><!-- 父布局不能忽略--><!-- 这个布局才是弹出来的布局--><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:background="@drawable/free_dialog_bg"android:orientation="vertical"><com.github.rahatarmanahmed.cpv.CircularProgressViewxmlns:app="http://schemas.android.com/apk/res-auto"app:cpv_thickness="3dp"android:padding="12dp"app:cpv_animAutostart="true"app:cpv_color="@color/me_blue"app:cpv_indeterminate="true"app:cpv_animSteps="3"android:layout_width="80dp"android:layout_height="80dp"/></LinearLayout></FrameLayout>
3 0
- 可以自定义布局的对话框---CommonDialog
- 自定义布局的对话框
- vb.net 中对话框(commondialog)的几个用法
- android自定义带有布局视图的对话框
- 自定义布局对话框的使用(Dialog)
- 自定义AlertDialog对话框布局
- 无标题对话框,自定义布局
- Android 自定义布局对话框
- 关于自定义可以点击的的布局
- CommonDialog
- CommonDialog
- CommonDialog
- Android 完全根据布局自定义对话框,封装好拿过去就可以用
- 可以弹出确认对话框的自定义Web服务器控件ConfirmButton
- 可以弹出确认对话框的自定义Web服务器控件ConfirmButton
- 可以弹出确认对话框的自定义Web服务器控件ConfirmButton
- Popup弹出自定义布局对话框
- Android dialog 对话框自定义布局
- 数据结构-顺序队列
- membercached安装与部署及应用
- error running app no target device found
- Java日期字符串排序
- Android判断真机和模拟器
- 可以自定义布局的对话框---CommonDialog
- Cococa初学者使用锁的坑(Exec_bad_Instruction)
- hadoop HDFS结构
- js的闭包与作用域/作用域链
- PyQt5 Ubuntu 16.04/14.04 环境配置
- java 虚拟机设置 Xms Xmx PermSize MaxPermSize
- Spring集成rabbitMQ
- 利用jdk自带keytool生成ssl证书,搭建tomcat+https协议
- 互联网开发模式的经验之谈