java–ANDROID:在instantiateItem方法中具有不同片段的ViewPager

java–ANDROID:在instantiateItem方法中具有不同片段的ViewPager,第1张

概述我使用ViewPager创建向左滑动的片段,现在我想在每个片段页面中插入片段.activityMain.xml<?xml version='1.0' encoding='utf-8'?> <android.support.design.widget.CoordinatorLayout ... android:orientat

我使用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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1139474.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)