启动器活动中的自定义对话框覆盖活动布局
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了启动器活动中的自定义对话框覆盖活动布局相关的知识,希望对你有一定的参考价值。
我的启动器活动中有一个对话框需要一些用户输入并显示它我在onCreate()中有这个代码...
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.dialog);
DialogBinding dialogBinding = DataBindingUtil.setContentView(this, R.layout.dialog);
popupBinding.dialogButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
}
});
dialog.show();
对话框按钮有一个onClick监听器来关闭它,但为了做到这一点,必须将对话框声明为final。以前(当此活动不是启动器时),我将对话框声明为实例变量,但这会导致错误。
private Dialog dialog = new Dialog(this);
但是,在onCreate方法中声明对话框会导致启动器活动的布局被对话框替换,以便对话框显示在其自身的副本上。
我不确定为什么会这样做,但我想知道是否有办法防止这种情况发生。谢谢!
答案
这会将对话框布局设置为活动的内容视图。
DialogBinding dialogBinding = DataBindingUtil.setContentView(this, R.layout.dialog);
所以你将你的活动与对话混合在一起。
对于你的活动,这应该是这样的
MyActivityBinding activityBinding = DataBindingUtil.setContentView(this, R.layout.my_activity);
以上是关于启动器活动中的自定义对话框覆盖活动布局的主要内容,如果未能解决你的问题,请参考以下文章