【发布时间】:2013-06-16 22:49:34
【问题描述】:
是否可以在Fragment 中手动调用方法onCreateView,或者,如果不能,有什么方法可以模拟这个调用?
我有一个FragmentActivity 和 tabHost。每个选项卡都包含一个Fragment,当我按下“刷新”按钮时,我想刷新Fragment 的视图。更具体地说,我想重新调用onCreateView 方法。
我的代码目前看起来像:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
view= inflater.inflate(R.layout.fragment_hall, container, false);
layoutExsternal = (RelativeLayout) view.findViewById(R.id.layoutExsternal);
layoutHall = (RelativeLayout) view.findViewById(R.id.layoutHall);
init();
return view;
}
[...]
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
Log.d("itemSelected1", this.getClass().getSimpleName());
switch (item.getItemId()) {
case R.id.menu_refresh:
//HERE I want to insert a method for refresh o redraw
return true;
}
return super.onOptionsItemSelected(item);
}
【问题讨论】:
-
更好的方法是重构您的 onCreateView。首先找到您的布局视图并将它们分配给字段,然后调用填充它们的委托方法。然后让您的刷新操作调用委托。你的 init() 方法似乎已经有了这个。不能刷新就这么叫吗?
-
我发现这种方法很有用stackoverflow.com/a/41888950/3496570
标签: android fragment android-view fragment-tab-host