您的位置:首页 > 其它

去掉自定义的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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: