いくつかのフラグメントを保持するFragmentPagerAdapterがあります。これらのフラグメントの内容は変更されましたが、更新関数でフラグメントを更新できませんでした。私はすでにこれらの提案を運がなくて試しました:
ViewPagerPagerAdapterがビューを更新しない
これが私のコードの一部です:
private void updateNavigation() {
//update code to redraw the fragment
//not workind
//mNavigationViewPager.getAdapter().notifyDataSetChanged();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Bundle args = new Bundle();
AFragment newFragment = new AFragment();
args.putString("test");
newFragment.setArguments(args);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.navigation_pager, newFragment);
transaction.addToBackStack(null);
transaction.commit();
これはフラグメントです:
public static class AFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment, draw layout dynamically
MyLinearLayout fl = new MyLinearLayout(getActivity());
Button btn = new Button(getActivity());
btn.setText(String.valueOf(cnt++));
btn.setGravity(Gravity.LEFT);
btn.setPadding(28, 7, 0, 0);
fl.addView(btn, new MyLinearLayout.LayoutParams(7, 5, 70, 50));
fl.setPadding(5, 5, 5, 5);
}
return fl;
}
}
作成時のアクティビティ:(..)
mNavigationViewPager = new ViewPager(this);
mNavigationViewPager.setId(R.id.navigation_pager);
mTabsAdapter = new TabsAdapter(this, mNavigationViewPager);
mTabsAdapter.addTab(actionBar.newTab().setText("text1"),
fragmentNr1, null);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
電話すると
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
オプションメニューの相互作用とその後の
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
別のオプションメニューでは、フラグメントが正しく更新されます。