inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast,
(ViewGroup) findViewById(R.id.custom_toast_container));
我不明白将布局附加到根视图组的目的,它是布局的一部分。为什么不使用attachToRoot标志为false:
View layout = inflater.inflate(R.layout.custom_toast,
(ViewGroup) findViewById(R.id.custom_toast_container), false);
顺便说一句,我的自定义toast消息可以正常工作,即使我省略了根视图并使用'null'作为第二个参数调用culflate。我明白这可能会在评估LayoutParams时引起一些问题,但我看不到任何问题。
当使用方法invalate()
时,第三个参数有三个选项:
>
传递true
:这意味着,您要求将inflate()
方法中的第一个参数(view)附加到第二个参数(即ViewGroup)。
我们在这样的场景中使用它:如果您在一个单独的XML文件中有一个按钮
,您希望附加到布局
(它可能是您的主按钮)。
inflater.inflate(R.layout.my_custom_button, myLinearLayout, true);
传递false
:这意味着,您要求invalate()
方法不要将第一个视图附加到第二个视图,但是在本例中,您必须在之后自己添加它。
示例:
Button button = (Button) inflater.inflate(R.layout.my_custom_button, myLinearLayout, false);
myLinearLayout.addView(button);
它与第一个场景相同,因此这里没有必要传递false
。但是,在某些情况下,当您不是负责将布局文件的视图附加到其根视图组的人时,应该将第三个参数作为false
传递。
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(getActivity());
View view = inflater.inflate(android.R.layout.list_item_recyclerView, parent, false);
return new ViewHolder(view);
}
有关更多详细信息,请参阅源代码
在阅读了下面的评论之后,我现在看到了您对这件事的困惑:您似乎知道上面的规则,但您唯一的困惑是:为什么我们要将视图
作为root传递给inflate()
中的第二个参数,尽管它已经是我们在第一个参数中传递的XML资源中的root。
简单地说,这就是inflate()
方法的工作原理:理解为什么我们需要inflate()
中的第二个参数,就可以解决这个问题:
除了上面所写的内容之外:inflate()
中的第二个参数是root,它是一个可选视图,可以是生成的层次结构的父级(如果第三个参数是true
),或者是一个为返回的层次结构的root提供layoutparams
值的对象。
因此,inflate()
方法将始终在第一个参数处生成所提供的XML文件中视图的层次结构后引用第二个参数。
在您的特定场景中,我们不会传递false
,因为这将导致充气调用忽略XML中的布局参数。
我有一个片段,我在其中膨胀“Fragment\u board.xml”: 如您所见,fragment\u board包含一个自定义视图“BoardView”,我想从中加载以下“view\u board.xml”: 我的自定义视图包含两个滚动视图(我使用它进行平移),我希望能够在其他布局中重复使用它。BoardView扩展了外部(垂直)滚动视图,如下所示: 当我独立使用它时,它会膨胀得很好,我可以在
那么如何对此?要扩展什么才能只调用setContentView()或setLayoutResource()? 我看了很多这样的答案,但没有一个符合我的问题。
我试图在我的应用程序上实现谷歌登录。 工作正常,但当我尝试登录时,我的logcat上出现以下错误: 2018-10-04 14:55:14.784 16313-16313/? I/AppCompatDelegate:无法实例化自定义视图充气器android。支持v7。应用程序。这是充气机。回到违约状态。JAVAlang.ClassNotFoundException:android。支持v7。应用程
还有人觉得这有点令人沮丧或有什么建议吗?从基类中膨胀相同的布局似乎并不罕见。
当获得Release apk时,我会在应用程序的所有活动中获得此错误日志 null 谢谢你。
问题内容: 我每次构建Web应用程序时都会想到的问题之一是,消息应该如何显示给最终用户 我尝试了类似Windows应用程序中的消息框,但是它们看起来很糟糕,并且在服务器上发布时会出现问题。我尝试了一个更新面板,该更新面板的页面底部顶部包含一个很酷的标签。.但是我仍然觉得它根本不够好。有时在使用AJAX时在特定情况下会遇到问题,但对于用户来说仍然不太好… 我想问一下出现一段时间然后消失的消息,例如,