getItem() 在 ViewPager 和 TabLayout 中调用 FragmentPagerAdapter 时



这是我Dashboard_adapt适配器类。

public class Dashboard_adapt extends FragmentStatePagerAdapter {
    Context context;
    ArrayList<Fragment> fragments = new ArrayList<>();

    public Dashboard_adapt(FragmentManager fm, Context context) {
        super(fm);
        this.context = context;
        setFragments();
    }
    private void setFragments(){
        fragments.add(new Home_dashboard());
        fragments.add(new Search_dashboard());
        fragments.add(new Add_dashboard());
        fragments.add(new Favourite_dashboard());
        fragments.add(new User_dashboard());
    }

    @Override
    public int getItemPosition(Object object) {
        return PagerAdapter.POSITION_NONE;
    }
    @Override
    public boolean isViewFromObject(View view, Object object) {
        if (object != null) {
            return ((Fragment) object).getView() == view;
        } else {
            return false;
        }
    }
    @Override
    public Fragment getItem(int position) {
        Toast.makeText(context, "" + position, Toast.LENGTH_SHORT).show();
        return fragments.get(position);
    }
    @Override
    public int getCount() {
        return fragments.size();
    }
}

这是ViewPager和TabLayout的主要活动。

    public class Dashboard extends AppCompatActivity {
private FragmentManager fm = null;
 private int[] ImageViar = {
            R.drawable.home_dash,
            R.drawable.ic_search_black_24dp,
            R.drawable.plus,
            R.drawable.heart,
            R.drawable.user_dash
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dashboard);
        ((AppCompatActivity) this).getSupportActionBar().hide();
        fm = getSupportFragmentManager();
        final TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_dash);
        final ViewPager viewPager = (ViewPager) findViewById(R.id.fragment_changer_dashboard);
        Dashboard_adapt adapter = new Dashboard_adapt(fm, this);
        viewPager.setAdapter(adapter);
        tabLayout.setupWithViewPager(viewPager);
        setupTabIcons(tabLayout);
 }

适配器类在第一次返回两个 Toast..,并且下次下一次在 ViewPager 中打开下一个片段类。

这是

ViewPager的默认行为。ViewPager还会加载"屏幕外"页面以优化滑动手势...您可能会看到位置 =0 和 1 的祝酒词。查看 setOffscreenPageLimit 方法...控制"页数">

最新更新