我有这段代码,我在其中定义了自己的AlertDialog.Builder
:
public class UnlockDialog extends AlertDialog.Builder {
public UnlockDialog(Activity context) {
super(context);
LayoutInflater inflater = context.getLayoutInflater();
View dlgView = inflater.inflate(R.layout.unlock_dialog, null);
setView(dlgView);
}
}
代码工作正常,但我在inflater.inflate
调用时收到警告:
避免将 null 作为视图根传递(需要解析膨胀布局根元素上的布局参数)
我的适配器中也遇到了这个问题,我可以使用提供parent
和false
来解决它,正如我在这里发现的那样: 避免将 null 作为视图根传递(需要解析膨胀布局根元素上的布局参数)
但是,在上述情况下,我似乎没有可用的parent
。我试过context.getParent()
,但没有用。
在这种情况下,警告不应适用。当attachToRoot
为 false 时,root
参数仅用于调用其 generateDefaultLayoutParams()
方法并将生成的LayoutParams
分配给膨胀视图。
在这种情况下,对话框将覆盖它们,因此它们无论如何都不会被使用。
请查看本文,特别是每个规则都有例外部分。
但是,因为结果将进入对话框,而对话框不会 公开其根视图(实际上它还不存在),我们没有 访问布局的最终父级,因此我们不能将其用于 通货膨胀。事实证明,这是无关紧要的,因为AlertDialog将 无论如何,删除布局上的任何布局参数并将它们替换为 match_parent。