ViewPager可以實現類似於微信左右滑動切換到不同的選項卡的效果。
1.在佈局文件中定義
<android.support.v4.view.ViewPager
android:id="@+id/vp_main"
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v4.view.ViewPager>
2.設置fragment
2.1創建多個fragment
應該繼承android.support.v4.app.Fragment 或者 android.app.Fragment。作爲viewPager要顯示的內容
給每個fragment設置要顯示的佈局
當然前提是定義好佈局文件了
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_conversation, null);
}
2.2在viewPager所在的activity裏,初始化viewPager。
viewPager = (ViewPager) findViewById(R.id.vp_main);
2.3準備要顯示的fragment集合
conversationFragment = new ConversationFragment();
groupFragment = new GroupFragment();
searchFragment = new SearchFragment();
fragments = new ArrayList<>();//已有 private ArrayList<Fragment> fragments;
fragments.add(conversationFragment);
fragments.add(groupFragment);
fragments.add(searchFragment);
2.4創建adapter類
public class MainActivityViewPagerAdapter extends FragmentPagerAdapter {
private ArrayList<Fragment> fragments;
public MainActivityViewPagerAdapter(FragmentManager fm, ArrayList<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
}
2.5給viewPager設置adapter
viewPager.setAdapter(new MainActivityViewPagerAdapter(getSupportFragmentManager(), fragments));
3 設置PageChange偵聽
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
/**滑動的過程不斷調用 position是前一個page的index*/
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//具體邏輯
}
/**滑動完了調用 position是後一個page的index*/
@Override
public void onPageSelected(int position) {
//具體邏輯
}
/**滑動狀態改變調用*/
@Override
public void onPageScrollStateChanged(int state) {
}
});