
我使用VIEwPager创建向左滑动的片段,现在我想在每个片段页面中插入片段.
activityMain.xml
还有这个:
tab0_fragment.xml
我在mainActivity.java中有一个VIEwPager
final VIEwPager vIEwPager = (VIEwPager) findVIEwByID(R.ID.myvIEwpager);vIEwPager.setAdapter(new PagerAdapter() {......}我尝试通过片段布局在vIEwpager中打开一个屏幕.
我试试这个:
final VIEwPager vIEwPager = (VIEwPager) findVIEwByID(R.ID.myvIEwpager);vIEwPager.setAdapter(new PagerAdapter() { ... public Object instantiateItem(final VIEwGroup container,final int position) { if (position == 0) { final VIEw vIEw = LayoutInflater.from(getBaseContext()).inflate(R.layout.fragment_tab0,null,false); FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); fragmentTransaction.replace(R.ID.myvIEwpager,new tab0Fragment()).commit(); container.addVIEw(vIEw); return vIEw; } else if (position == 1) ... } ...}AND tab0Fragment.java
public class tab0Fragment extends Fragment { @Nullable @OverrIDe public VIEw onCreateVIEw(LayoutInflater inflater,VIEwGroup container,Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_tab0,null); }}我是机器人中的菜鸟.怎么能纠正这个代码?
解:
答案不是我的答案,但这对我帮助很大.
根据@Mr. Rabbit ans @Amit Upadhyay我将顶级代码更改为:
@OverrIDe public Object instantiateItem(final VIEwGroup container,final int position) { if (position == 0) { final VIEw vIEw = LayoutInflater.from(getBaseContext()).inflate(R.layout.fragment_tab0,false); MyAdapter adapter = new MyAdapter(getSupportFragmentManager()); adapter.addFragment(new tab0Fragment(),getResources().getString(R.string.tab0)); container.addVIEw(vIEw); return vIEw; } else if (position == 1) {并根据@Mr添加MyAdapter类.兔子的答案.
希望能帮助别人.
最佳答案尝试将适配器和代码分开.MyAdapter.java
public class MyAdapter extends FragmentPagerAdapter{ private final List创建你的碎片
FragmentOne.java
public class FragmentOne extends Fragment { @Nullable @OverrIDe public VIEw onCreateVIEw(LayoutInflater inflater,@Nullable VIEwGroup container,@Nullable Bundle savedInstanceState) { VIEw vIEw = inflater.inflate(R.layout.fragment_one,container,false); return vIEw; }}FragmentTwo.java
public class FragmentTwo extends Fragment { @Nullable @OverrIDe public VIEw onCreateVIEw(LayoutInflater inflater,@Nullable Bundle savedInstanceState) { VIEw vIEw = inflater.inflate(R.layout.fragment_two,false); return vIEw; }}在您的活动中设置您的vIEwpager.
final VIEwPager vIEwPager = (VIEwPager) findVIEwByID(R.ID.myvIEwpager); MyAdapter adapter = new MyAdapter(getSupportFragmentManager()); // Add your fragments in adapter. FragmentOne fragmentOne = new FragmentOne(); adapter.addFragment(fragmentOne,getResources().getString(R.string.fragment_one_Title)); FragmentTwo fragmentTwo = new FragmentTwo(); adapter.addFragment(fragmentTwo,getResources().getString(R.string.fragment_two_Title)); vIEwPager.setAdapter(adapter);然后最后使用VIEwPager设置NavigationTabbar.
final NavigationTabbar navigationTabbar = (NavigationTabbar) findVIEwByID(R.ID.ntb_horizontal);navigationTabbar.setVIEwPager(vIEwPager,2); 总结 以上是内存溢出为你收集整理的java – ANDROID:在instantiateItem方法中具有不同片段的ViewPager全部内容,希望文章能够帮你解决java – ANDROID:在instantiateItem方法中具有不同片段的ViewPager所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)