1

У меня возникла странная проблема в FragmentStatePagerAdapter.when я прокручиваю фронт, он работает gud, когда я сажусь назад, пропустите 2 фрагмента. Как решить это? Есть ли способ получить текущий пункт нет?FragmentPagerAdapter неправильно обновляет страницы?

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.. 


    }}} 

ответ

1

Toast очень медленно, и это не является хорошим решением, если вы ударяя точки зрения, поскольку он остается на экране дольше и не может достигнуть, чтобы показать все сообщения, поэтому лучше проверить положение в LogCat. Попробуйте это за положение предметов и увидеть позицию Log:

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

я это is.but я подождал 30 секунд для каждого пойло – Asthme

+0

вы пытались получить позицию Вход? – pandabear

+0

hey u r right, тост не полезен, но я пробовал в журнале, но его не работает ... – Asthme

Смежные вопросы