Мое приложение представляет собой значок, такой как приложение drawerКак получить текущий индекс страницы в фрагменте viewpager?
Каждая страница имеет 12 значков, если более 12 значков, другие значки будут отображаться на следующей странице.
Я использую viewpager и gridview для реализации этого интерфейса. Каждый фрагмент viewpager имеет gridview для отображения элементов.
В FragmentActivity я могу получить текущий индекс страницы, добавив OnPageChangeListener в viewpager.
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
Но я не могу получить индекс в фрагменте
public class MyFragment extends Fragment {
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";
public static final MyFragment newInstance(String message)
{
MyFragment f = new MyFragment();
Bundle bdl = new Bundle(1);
bdl.putString(EXTRA_MESSAGE, message);
f.setArguments(bdl);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String message = getArguments().getString(EXTRA_MESSAGE);
View v = inflater.inflate(R.layout.fragment, container, false);
//suppose the list has 15 items now
ArrayList list=new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
list.add(7);
list.add(8);
list.add(9);
list.add(10);
list.add(11);
list.add(12);
list.add(13);
list.add(14);
list.add(15);
GridView gridview = (GridView) v.findViewById(R.id.gridview);
int currentIndex=??? //how to get index?
if(currentIndex==0){
gridview.setAdapter(new GridViewAdapter(list.subList(0,12));
} else if (currentIndex==1) {
gridview.setAdapter(new GridViewAdapter(list.subList(12,15));
}
return v;
}
}
фрагмент в другой странице должны отображаться другой список подменю элементов, как получить индекс в фрагменте?
ли вы имеете в виду передать индекс в newInstance? –
Да, я отредактировал мой ответ –