繁体   English   中英

如何膨胀从onCreateView()返回的视图

[英]How to inflate a view returned from onCreateView()

我有一个扩展fragment的Java类,正如您在onCreateView所知,将返回一个layout view以显示在fragment容器上。 现在,我想给返回的东西充气

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

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

Updat

onCreateView()将返回一个view ,该view将显示在fragment conatiner 现在,我想用另一个xml文件来扩大该view 那可能吗。? 我希望现在已经清楚了。

任何想法如何做到这一点?

码:

//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;

在具有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));

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

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

现在,您可以返回片段,而无需使用FragmentManager重新实例化,如下所示:

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

您可以再次操作它。

否则,如果不经历片段的生命周期,我看不到第二次增加片段的任何方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM