是否有可能手動調用Fragment
中的方法onCreateView
,或者如果沒有,有什麼辦法可以模擬此調用?是否可以在片段中手動調用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()方法。無法刷新只是打電話? – k2col
我覺得這個方法很有用http://stackoverflow.com/a/41888950/3496570 – Nepster