我目前正在尝试为我未来的应用程序制作框架.我非常喜欢ActionBar和ViewPager,但错过了一个功能.我需要在运行时替换Fragment/Tab.
使用官方示例,我希望看到类似于replaceTab()的内容,但无论我做什么,Fragment本身都不会更新.
我正在使用具有3个或更多片段的ViewPager,这些片段显示和存储CustomView作为字段。
在托管FragmentActivity的过程中,我需要访问并设置CustomView的属性和字段,以更改它们的显示方式。
当我需要访问尚未实例化的Fragment(如Activity开头的第三个Fragment)时,会出现问题(默认情况下,第一个Fragment是默认选择的,只有下一个Fragment被实例化)。
我的活动:
public class VectorProduct extends FragmentActivity {
ViewPager mViewPager;
TabsAdapter mTabsAdapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pager);
final ActionBar bar = getSupportActionBar();
bar.setSubtitle(R.string.bt_dashboard_vector_product);
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
mViewPager = (ViewPager) findViewById(R.id.viewpager);
mTabsAdapter = new TabsAdapter(this, bar, mViewPager);
mTabsAdapter.addTab(bar.newTab().setText("Vector 1"), VectorFragment.class);
mTabsAdapter.addTab(bar.newTab().setText("Vector 2"), VectorFragment.class);
mTabsAdapter.addTab(bar.newTab().setText("Vector 3"), VectorFragment.class);
}
public static class TabsAdapter extends FragmentPagerAdapter implements
ViewPager.OnPageChangeListener, ActionBar.TabListener {
private final FragmentManager mFragmentManager;
private final Context mContext;
private final ActionBar mActionBar; …Run Code Online (Sandbox Code Playgroud)