如何给onCreateView()返回的视图充气

时间:2014-05-29 05:38:57

标签: java android android-fragments fragment

我有一个扩展fragment的java类,如您所知onCreateViewlayout view将返回fragment容器。现在,我想夸大退回的

View view = inflater.inflate(R.layout.fragment00, null);
        return view;

使用xml文件中的其他布局或视图。

Updat

onCreateView()将返回view上显示的fragment conatiner。现在,我想将view与另一个xml文件一起膨胀。那可能吗。?我希望现在很清楚。

知道怎么做吗?

代码:

//I want to inflate "view" with another layout or views from another xml file
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view = inflater.inflate(R.layout.fragment00, null);
    return view;

2 个答案:

答案 0 :(得分:0)

在带有id容器的fragment00.xml中添加类似LinerLayout / Relative布局的ViewGroup,然后在运行时可以尝试类似

的内容
View newView = inflater.inflate(R.layout.new_view,null);
LinearLayout container = getView().findViewById(R.id.container);
container.addView(newView,newLinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));

答案 1 :(得分:0)

由于您正在使用片段,因此可以多次交换或调出,但这样做会再次调用onCreateonCreateView方法,因此视图将基本上被重置。如果你想在实例化之后返回一个片段并使用FragmentTransaction来显示它,只需在替换时将其添加到backstack中,如下所示:

fragmentTransaction.replace(R.id.contentframe, myfrag)
    .addToBackstack(null)
    .commit();

现在你可以回到片段而无需使用FragmentManager重新实现它,如下所示:

getFragmentManager().popBackStack().commit();

你可以再次操纵它。

否则我没有看到任何方式第二次膨胀片段而不经历片段的生命周期。