在片段android

时间:2015-11-14 10:54:59

标签: android android-layout android-fragments

我有这个要求,我有一个片段实例,我想在片段的顶部动态添加一个视图,而不管片段的根视图组。

像这样的东西

enter image description here

  • 那么可以从其实例中获取片段的根视图吗?我知道我可以做的活动:activity.findViewById(android.R.id.content);

  • 此外,由于片段可以将任何类型的视图组作为其根视图,如LinearLayout,RecyclerView,RelativeLayout,FrameLayout,是否有一种在片段顶部添加叠加视图的通用方法?

如果不可能,那么我应该在xml布局中的片段顶部添加一个虚拟视图,然后使用该视图添加叠加层吗?

2 个答案:

答案 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()方法中返回的视图