【问题标题】:The FragmentPagerAdapter update the pages wrongly?FragmentPagerAdapter 错误地更新页面?
【发布时间】:2013-11-10 15:20:29
【问题描述】:

我在 FragmentStatePagerAdapter 中遇到奇怪的问题。当我向前滑动时,它可以正常工作,当我向后滑动时它会跳过 2 个片段。如何解决这个问题? 有什么方法可以获取当前商品编号吗?

NavigationPagerAdapter

     public static class NavigationPagerAdapter extends FragmentStatePagerAdapter {

    public NavigationPagerAdapter(android.support.v4.app.FragmentManager fm ) {
        super(fm);

               }

    @Override
    public Fragment getItem(int i) {

        Fragment fragment = new NaviagtionFragment();

        Bundle args = new Bundle();




        args.putInt("position", i); // Our object is just an integer :-P
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public int getCount() {
        // For this contrived example, we have a 100-object collection.
        return 100;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return "OBJECT " + (position );
    }

在片段中

         public static class NaviagtionFragment extends Fragment {




    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.item_pager, container, false);



        Bundle args = getArguments();
    int   m= args.getInt("position");


     Toast.makeText(c, ""+m, Toast.LENGTH_SHORT).show();//here i tracked the position of fragments when i swipe front ,its increasing 1,2,3,4,5,6,7 but when i swipe back it will go directly 7 -5 th position..


    }}}

【问题讨论】:

    标签: android android-fragments android-viewpager fragmentstatepageradapter


    【解决方案1】:

    Toast 很慢,在滑动视图时不是很好的解决方案,因为它在屏幕上停留的时间更长,无法显示所有消息,所以最好在 LogCat 中查看位置。试试这个项目的位置,并用日志查看位置:

        @Override
                public void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    mNum = getArguments() != null ? getArguments().getInt("position") : 1;
    Log.i("tag", "Item clicked: " + mNum);
                }
    

    【讨论】:

    • 是的。但我每次滑动都等了 30 秒
    • 您是否尝试在 Log 中获得位置?
    • 嘿,你说得对,toast 没用,但我在日志中尝试过,但它不起作用...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多