Android基础之Fragment Viewpager篇
2016-09-19 00:42
197 查看
本例使用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.csdn.net/detail/enough_empty/9633256
相关文章推荐
- Android-SQLite3 超基础入门
- Android UI设计的基础
- Android基础教程(一)之------更改与显示文字标签TextView标签的使用
- Android基础教程(五)之-----Menu功能菜单设计
- Android基础教程(七)之----单选项框RadioGroup的综合应用
- Android基础教程(五)之-----Menu功能菜单设计
- Android基础教程(一)之------更改与显示文字标签TextView标签的使用
- Android基础教程(三)之-----简单的Button事件响应综合提示控件Toast的应用
- Android基础教程(四)之-----取得手机屏幕大小DisplayMetrics的应用
- 动画效果编程基础--AnimationAndroid
- Android开发指南-框架主题-基础知识
- android学习1 android应用的基础
- Android content provider基础与使用
- Android文档(二)-应用基础(1)应用组件(Application Components)
- Android(OPhone) 学习笔记 - 代码基础
- Android基础 - 对话框和浮动Activity
- Android开发指南-框架主题-基础知识
- Android基础教程(二)之五大布局对象---FrameLayout,LinearLayout ,AbsoluteLayout,RelativeLayout,TableLayout.
- Android基础教程(六)之----多选项CheckBox的综合应用
- Android基础教程(七)之----单选项框RadioGroup的综合应用