[英]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));
由于您正在使用一个片段,因此可以多次换入或换出一个片段,但是这样做会再次调用onCreate
和onCreateView
方法,因此实际上将重置视图。 如果您想在实例化片段后返回片段,并使用FragmentTransaction展示它,只需在替换时将其添加到Backstack中即可,如下所示:
fragmentTransaction.replace(R.id.contentframe, myfrag)
.addToBackstack(null)
.commit();
现在,您可以返回片段,而无需使用FragmentManager重新实例化,如下所示:
getFragmentManager().popBackStack().commit();
您可以再次操作它。
否则,如果不经历片段的生命周期,我看不到第二次增加片段的任何方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.