去掉自定义的Dialog 的布局的最上面的蓝色的title线
2016-03-16 16:46
756 查看
去掉自定义的Dialog 的布局的最上面的蓝色的title线
由于公司的APP的风格要改变 原来是蓝色的主调,现在 改为绿色的 所以要把 之前的 对话框的风格也要改掉,而之前的对话框都是用的系统的自带的。现在的设计图上设计的风格 使用系统的 无法实现。所以想到去自己实现。
首先 ,先说下 Android中的对话框分为两种 Dialog 和AlertDialog 两个类,现在 官方 推荐的是使用AlertDialog 。
但是有4个问题。
1,如果对话框中有Edittext控件 使用AlertDialog 弹出的话会导致 Edittext无法获得焦点,导致点击Edittext时键盘不会弹出。
解决的办法是 在设置dialog之前
Context context = dialog.getContext();
int divierId = context.getResources().getIdentifier(“android:id/titleDivider”, null, null);
View divider = dialog.findViewById(divierId);
divider.setBackgroundColor(color);
这样设置了那条官方的线 为透明颜色。就不见了。
解决Edittext 的焦点问题应该还有其他的方法。我目前是用的这个。
2,如果不是 在对话框的内有Edittext 的。也就是一般的 上面一个title 下面两个按钮一个 ”确定“ 一个“取消” 按钮的就推荐使用AlertDialog 然后自定义布局。 也就改变了它的风格。
但是还有一个问题 在最底层的布局。 要给它设置背景,因为它默认的背景为透明的颜色。
3,如果使用AlertDialog 的类的对话框。不管是使用系统的AlertDialog 还是自已定义的都要 注意一点就是 在dialog对象的设置布局即
setContentView(mView);之前要dialog.show(); 而不是在设置完了布局再show.
View mView = LayoutInflater.from(getContext()).inflate(R.layout.dialog_normal_layout, null);
title = (TextView) mView.findViewById(R.id.title);
editText = (EditText) mView.findViewById(R.id.number);
positiveButton = (Button) mView.findViewById(R.id.positiveButton);
negativeButton = (Button) mView.findViewById(R.id.negativeButton);
setContentView(mView);
4,主要是因为Dialog的自定义布局以后还会存在上面空白的一大块的 title所以尽量使用
AlertDialog。
5, 在使用Dialog 时的时候,可以没有里面布局有Edittext的无法获得焦点问题。
但是Dialog,默认是有个title的 怎么去掉title呢?可以在你自定义 布局。设置之前,设置没有无title的窗口。
requestWindowFeature(Window.FEATURE_NO_TITLE);(这句设置没有title)。
setContentView(R.layout.back_dialog_validcode);
由于公司的APP的风格要改变 原来是蓝色的主调,现在 改为绿色的 所以要把 之前的 对话框的风格也要改掉,而之前的对话框都是用的系统的自带的。现在的设计图上设计的风格 使用系统的 无法实现。所以想到去自己实现。
首先 ,先说下 Android中的对话框分为两种 Dialog 和AlertDialog 两个类,现在 官方 推荐的是使用AlertDialog 。
但是有4个问题。
1,如果对话框中有Edittext控件 使用AlertDialog 弹出的话会导致 Edittext无法获得焦点,导致点击Edittext时键盘不会弹出。
解决的办法是 在设置dialog之前
Context context = dialog.getContext();
int divierId = context.getResources().getIdentifier(“android:id/titleDivider”, null, null);
View divider = dialog.findViewById(divierId);
divider.setBackgroundColor(color);
这样设置了那条官方的线 为透明颜色。就不见了。
解决Edittext 的焦点问题应该还有其他的方法。我目前是用的这个。
2,如果不是 在对话框的内有Edittext 的。也就是一般的 上面一个title 下面两个按钮一个 ”确定“ 一个“取消” 按钮的就推荐使用AlertDialog 然后自定义布局。 也就改变了它的风格。
但是还有一个问题 在最底层的布局。 要给它设置背景,因为它默认的背景为透明的颜色。
3,如果使用AlertDialog 的类的对话框。不管是使用系统的AlertDialog 还是自已定义的都要 注意一点就是 在dialog对象的设置布局即
setContentView(mView);之前要dialog.show(); 而不是在设置完了布局再show.
View mView = LayoutInflater.from(getContext()).inflate(R.layout.dialog_normal_layout, null);
title = (TextView) mView.findViewById(R.id.title);
editText = (EditText) mView.findViewById(R.id.number);
positiveButton = (Button) mView.findViewById(R.id.positiveButton);
negativeButton = (Button) mView.findViewById(R.id.negativeButton);
setContentView(mView);
4,主要是因为Dialog的自定义布局以后还会存在上面空白的一大块的 title所以尽量使用
AlertDialog。
5, 在使用Dialog 时的时候,可以没有里面布局有Edittext的无法获得焦点问题。
但是Dialog,默认是有个title的 怎么去掉title呢?可以在你自定义 布局。设置之前,设置没有无title的窗口。
requestWindowFeature(Window.FEATURE_NO_TITLE);(这句设置没有title)。
setContentView(R.layout.back_dialog_validcode);
相关文章推荐
- convertview的重用
- iOS 安全攻防系列(五): nm 命令详解
- 使用云通讯发送短信的简单的描述
- oracle安装配置
- mac下面photoshop cs6 菜单栏的文字模糊问题
- Java中equal和==的区别是什么
- 编译安装lamp lnmp环境
- Git的使用(基于Linux)
- C++ 标识符
- 权限控制中的几个TCODE
- poj 1135 Domino Effect
- Active MQ 管理界面介绍
- Python Post img
- CUBRID学习笔记 18 sql语句的预处理(类似存储过程)
- 系统yum源更新及某些软件官方源安装
- 立即调用的函数表达式(IIFE)
- 第三周上机实践项目 项目4--换分币
- CSS之弧形阴影
- 可变数组NSMutableArray懒加载之后没数据问题
- CSS之弧形阴影