Android 如何在应用程序启动时创建所有片段
我正在以编程方式创建大量片段。它们都有不同的布局,活动片段的布局在片段之间交换后会发生变化 当程序启动时,Android 如何在应用程序启动时创建所有片段,android,android-fragments,Android,Android Fragments,我正在以编程方式创建大量片段。它们都有不同的布局,活动片段的布局在片段之间交换后会发生变化 当程序启动时,FragmentPagerAdapter创建前两个片段。如果我选择最后一个片段(例如从第一个片段到第七个片段)FragmentPagerAdapter开始创建第七个片段,然后创建第六个片段。此时,我想使用下面的代码选择当前片段 `(FragmentMasaDesign) getSupportFragmentManager().getFragments().get
FragmentPagerAdapter
创建前两个片段。如果我选择最后一个片段(例如从第一个片段到第七个片段)FragmentPagerAdapter
开始创建第七个片段,然后创建第六个片段。此时,我想使用下面的代码选择当前片段
`(FragmentMasaDesign) getSupportFragmentManager().getFragments().get
(myViewPager.getCurrentItem());`
myViewPager.getCurrentItem()
返回6。这是真的,因为我选择了第7个片段,它的索引是6。然而,我只有四个创建的片段,它们是1-2-6-7。因此,getFragments()
方法返回这四个片段,它无法选择当前活动片段,因为myViewPager.getCurrentItem()
有没有办法在应用程序开始时创建所有片段,或者如何在创建其他片段之前获取当前片段?您可以使用设置viewpager上的片段数
您可以使用设置viewpager上的片段数 也可以在屏幕上找到可见的片段。稍后我将分享它的代码 感谢所有花时间回答我问题的人 也可以在屏幕上找到可见的片段。稍后我将分享它的代码
感谢所有花时间回答我问题的人。你可以用一个片段替换另一个片段,如下所示
DiplayFragment newFragment = new DiplayFragment();
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
transaction
.replace(R.id.nav_fl_frag_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();
您可以将一个片段替换为另一个片段,如下所示
DiplayFragment newFragment = new DiplayFragment();
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
transaction
.replace(R.id.nav_fl_frag_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();
这应该是最好的方式!这应该是最好的方式!
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
mViewPager.setCurrentItem(tab.getPosition());
fragment = collectionPagerAdapter.fragments[mViewPager.getCurrentItem()];
}
DiplayFragment newFragment = new DiplayFragment();
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
transaction
.replace(R.id.nav_fl_frag_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();