BaseDialog
来源:互联网 发布:ubuntu ctrl alt t 编辑:程序博客网 时间:2024/05/22 00:17
/***自定义dialog基类无边框,不标题栏;*/public abstract class BaseDialog extends Dialog { protected Context mContext; public BaseDialog(Context context) { super(context, R.style.ShareDialog);//将下面的主题赋值到自己的项目中 this.mContext = context; } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); WindowManager.LayoutParams params = getWindow().getAttributes(); params.height = LayoutParams.MATCH_PARENT; params.width = LayoutParams.MATCH_PARENT; params.gravity = Gravity.CENTER; getWindow().setAttributes(params); //动画效果可自己定义 getWindow().setWindowAnimations(R.style.ConfirmDialogAnimstyle); //把整个Layout顶上去露出获得焦点的EditText,不压缩多余空间 getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // // 透明状态栏 // getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); // // 透明导航栏 // getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); // } } //点击dialog或者以外的地方,dialog消失; protected void addClickCancel() { View view = findViewById(R.id.dialog_content);//必须在自定义的最外层布局添加id为dialog_content,否则不响应点击消失事件; if (view != null) { view.setOnClickListener(new android.view.View.OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); } }}
<!-- 对话框样式 背景变暗 --> <style name="ShareDialog"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">false</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:backgroundDimEnabled">true</item> </style>
自定义一个dialog继承baseDialog布局自己随便定义什么样的都可以;
例如下面的:
public class DialogMaterialMenu extends BaseDialog { Context context; public static TextView waitToApplay; public static TextView latestApplay; public static TextView sort; public DialogMaterialMenu(Context context) { super(context); this.context=ICMApplication.mContext; } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.dialog_layout_material_dialog);//在这里设置自己需要显示的布局; //初始化控件 initView(); } private void initView() { addClickCancel();//一定要注意此处调一下,让点击屏幕dialog消失 waitToApplay = (TextView) findViewById(R.id.waitToApplay); latestApplay = (TextView) findViewById(R.id.latestApplay); sort = (TextView) findViewById(R.id.sort); } /** * 如果有监听事件,注册控件的监听事件,或者设置控件显示的内容; */}
1 0
- BaseDialog
- 14、BaseDialog的界面
- 15、BaseDialog的代码
- Unity客户端架构-BaseDialog
- BaseDialog的封装
- 自定义BaseDialog,继承BaseDialog实现自己想要的功能。
- 安卓自定义Dialog之BaseDialog
- 项目基本配置集合:BaseDialog,BaseActivity,TitleBar,沉浸式集合。
- Android 下Build模式初使用(BaseDialog)
- 第3题:Longest Substring Without Repeating Characters
- js与jq处理盒子模型&&定位
- 多线程与多进程
- 练习系统 实验三 菲波那契数列
- 【java 类加载的深入研究1】loadClass()的研究
- BaseDialog
- 设计模式学习笔记---设计原则
- 如何快速成为一名Linux运维工程师
- volatile 与 synchronized 区别
- 九度oj 1074 对称平方数
- 机器学习斯坦福公开课学习笔记
- 头疼的算法与数据结构——红黑树
- 解决Could not find method android() for arguments问题
- Spring跨controller数据传输