本例使用Android Studio进行开发
*展示效果如图:
对于所有的Viewpager控件的使用基本根据以下操作作为模板
- 初始化viewpager控件
- 添加数据
- Viewpager设置监听事件
- viewapager设置adapter
- Adapter文件MyFragmentPagerAdapter.java(能够自动删除Fragment元素,避免Frament栈过多导致程序崩溃)
public class MyFragmentPagerAdapter extends FragmentStatePagerAdapter {
private List fragList;
public MyFragmentPagerAdapter(FragmentManager fm, List fragList) {
super(fm);
// TODO Auto-generated constructor stub
this.fragList=fragList;
}
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return fragList.get(arg0);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return fragList.size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
super.destroyItem(container, position, object);
}
@Override
public Object instantiateItem(ViewGroup arg0, int arg1) {
// TODO Auto-generated method stub
return super.instantiateItem(arg0, arg1);
}
}
*__MainActivity__
public class MainActivity extends AppCompatActivity implements View.OnClickListener, ViewPager.OnPageChangeListener{
private List fragList;
private ViewPager pager;
//使用layout控制底部栏在于提高用户体验,便于点击
private RelativeLayout bottom_menu_one_Layout,bottom_menu_two_Layout,bottom_menu_three_Layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init_layout();
init_fragmentViewpager();
}
//设置底部按钮点击事件
public void init_layout(){
/*
* 初始化底部按钮控件所在的布局
* */
bottom_menu_one_Layout=(RelativeLayout)findViewById(R.id.bottom_menu_one_Layout);
bottom_menu_two_Layout=(RelativeLayout)findViewById(R.id.bottom_menu_two_Layout);
bottom_menu_three_Layout=(RelativeLayout)findViewById(R.id.bottom_menu_three_Layout);
/*
* 底部菜单栏设置点击事件
* */
bottom_menu_one_Layout.setOnClickListener(this);
bottom_menu_two_Layout.setOnClickListener(this);
bottom_menu_three_Layout.setOnClickListener(this);
}
//设置点击事件
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bottom_menu_one_Layout:
pager.setCurrentItem(0);
break;
case R.id.bottom_menu_two_Layout:
pager.setCurrentItem(1);
break;
case R.id.bottom_menu_three_Layout:
pager.setCurrentItem(2);
break;
}
}
//设置Viewpager
public void init_fragmentViewpager(){
/*
* 初始化viewpager控件
* */
pager=(ViewPager) findViewById(R.id.main_viewpager);
fragList=new ArrayList();
/*
* 为fragmentViewpagerList添加fragment
* */
fragList.add(new Fragment1());
fragList.add(new Fragment2());
fragList.add(new Fragment3());
/*
* 添加Viewpager滑动监听事件
* */
pager.setOnPageChangeListener(this);
/*
* viewapager设置adapter
* */
MyFragmentPagerAdapter adapter=new MyFragmentPagerAdapter(getSupportFragmentManager(),fragList);
pager.setAdapter(adapter);
}
//Viewpager重写方法
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//翻页时事件
}
@Override
public void onPageSelected(int position) {
//该方法为当前选定页面事件
}
@Override
public void onPageScrollStateChanged(int state) {
//该方法为翻页状态变化事件
}
*__activity_main.xml核心部分__
<RelativeLayout
android:id="@+id/content_layout"
android:layout_marginBottom="48dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v4.view.ViewPager
android:id="@+id/main_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
</RelativeLayout>
<fragment
android:id="@+id/menu_fragment"
android:layout_width="match_parent"
android:layout_height="55dp"
android:name="com.example.boy.viewpager_demo.Button_menu_Fragment"
tools:layout="@layout/bottom_menu"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"></fragment>
*ps:在Android Studio中使用Fragment做组件必须添加android:name属性
完整demo地址:http://download.youkuaiyun.com/detail/enough_empty/9633256