在我的 NavigationView 中,我有一个带有活动按钮的 id ‘viewId’ 的标题布局。要设置这些按钮,我在活动的 onPostCreate
中执行以下操作:
final View panel = findViewById(R.id.viewId);
panel.setOnClickListener(new View.OnClickListener() {
... setup goes here ...
});
使用新版本的 android 支持库 ( 23.1.0 ),无法找到视图,它返回 null。使用以前的版本,它运行良好。是错误还是我使用此功能错误?如果是这样,如何访问标题布局并向其添加行为?
原文由 khusrav 发布,翻译遵循 CC BY-SA 4.0 许可协议
版本 23.1.0 将
NavigationView
切换为使用RecyclerView
(而不是之前的ListView
),并将标题添加为这些元素之一。这意味着不能立即调用findViewById()
- 在将其附加到NavigationView
之前需要布局通道。对于支持库的 23.1.1 版本,您现在可以使用
getHeaderView()
获取对标题视图的引用:这具有处理通过 XML 和代码添加的标头的优势。
如果您仍在使用 23.1.0,根据 相关的错误,您可以在代码中填充标头并使用
findViewById()
:直到您移至 23.1.1。