我試圖將標題儘可能地短語,但基本上在HomeActivity內部,我有一個用於片段的自定義菜單。其中之一是HomeFragment
其中包含Tablelayout
的2個選項卡與viewpager
..!從工具欄按下後,Viewpager將無法正常工作
一切工作正常。但在菜單片段中,當用戶單擊工具欄上的後退按鈕時,將返回到HomeFragment
。 一個片段替換方法將做的伎倆,我已經用它來代替之間的片段從菜單中選擇!
但是在這種情況下,HomeFragment
尚未打開Tablayout
未響應!感覺就像片段沒有正確創建!?
我嘗試使用默認情況下打開HomeFragment
的同一活動的新意圖,並打開它,但具有相同的問題。
的問題
守則
HomeFragment
// code..
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
InitViews(rootView);
TabLayoutAdapter adapter = new TabLayoutAdapter(getFragmentManager());
pager.setAdapter(adapter);
tabLayout.setupWithViewPager(pager);
return rootView;
}
// code..
菜單片段
// code..
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.to_home:
replaceFragment(new HomeFragment());
// tried this and it's the same problem
// startActivity(new Intent(getActivity(), HomeActivity.class).setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void replaceFragment(Fragment fragment) {
android.support.v4.app.FragmentTransaction t = getFragmentManager().beginTransaction();
t.replace(R.id.Container, fragment);
t.commit();
}
// code..
它給我'java.lang.IllegalArgumentException異常:未找到ID視圖0x7f0d008a(XXX.XXXX:id /容器)的片段GamesFragment {2b77c84#2 id = 0x7f0d008a}' –
GamesFragment在哪裏? – Anonymous
這是菜單片段..!它的代碼張貼在問題中!你爲什麼認爲這個錯誤顯示。 –