我有这个要求,我有一个片段实例,我想在片段的顶部动态添加一个视图,而不管片段的根视图组。
像这样的东西
那么可以从其实例中获取片段的根视图吗?我知道我可以做的活动:activity.findViewById(android.R.id.content);
此外,由于片段可以将任何类型的视图组作为其根视图,如LinearLayout,RecyclerView,RelativeLayout,FrameLayout,是否有一种在片段顶部添加叠加视图的通用方法?
如果不可能,那么我应该在xml布局中的片段顶部添加一个虚拟视图,然后使用该视图添加叠加层吗?
答案 0 :(得分:1)
getView()
方法返回包含Fragment根布局的View
。在那里,您可以将其转换为ViewGroup
并将其保留为添加简单视图,使用if-else
块与instanceof
确定其类型:
<强>首先强>
ViewGroup viewGroup = (ViewGroup) fragment.getView();
<强>第二强>
View view = fragment.getView();
if (view instanceof FrameLayout) {
FrameLayout root = (FrameLayout) view;
} else if (view instanceof RelativeLayout) {
}
//etc...
<强>第三强>
修改:删除了此选项。它实际上不会工作。
答案 1 :(得分:0)
您可以使用Child Fragment但如果您只对片段根视图感兴趣,只需保留您在片段onCreateView()方法中返回的视图