fragment+ViewPager的使用(页面的滑动切换)
来源:互联网 发布:如何优化伊春发展环境 编辑:程序博客网 时间:2024/05/21 18:11
本人写的效果是这样的,它可以点击底部的两个按钮来切换,也可以左右滑动来切换,每个页面可以有独立的布局及响应
这个小项目用到了两个fragment对象,一个ViewPager(一个是连接的fragment,一个是展示的fragment,大家要是有需要也可以自己在加)
1、布局文件:
Activity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="wrap_content" > </android.support.v4.view.ViewPager> <RadioGroup android:id="@+id/bottom_control" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="horizontal" > <RadioButton android:id="@+id/bt1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@null" android:button="@null" android:checked="true" android:drawableTop="@drawable/daohanglianjie" android:gravity="center" android:onClick="doClick" android:text="连接" /> <RadioButton android:id="@+id/bt2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/zhanshi" android:gravity="center" android:onClick="doClick" android:text="展示" /> </RadioGroup></RelativeLayout>
fragment01.xml
<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="第一个" /></FrameLayout>
fragment02.xml
<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="第二个" /></FrameLayout>
2,Activity中的代码(注意继承的是FragmentActivity)
package com.example.fragment;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.View;import android.widget.RadioButton;public class FragmentMainActivity extends FragmentActivity {//底部按鈕的集合private List<View> mBottom = new ArrayList<View>();//fragment集合private ArrayList<Fragment> mFg = null;private RadioButton mRtLink = null;private RadioButton mRtShow = null;private ViewPager mViewPager = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);__init();//初始化界面__setViewPagerListener();//ViewPager滑动的监听事件}private void __init() {mViewPager = (ViewPager) findViewById(R.id.vp);mRtLink = (RadioButton) findViewById(R.id.bt1);mRtShow = (RadioButton) findViewById(R.id.bt2);mBottom.add(mRtLink);mBottom.add(mRtShow);mFg = new ArrayList<Fragment>();mFg.add(new Fragment01());mFg.add(new Fragment02());//管理fragment,把fragment加到ViewPager中FragmentManager fm = getSupportFragmentManager();MyAdapter adapter = new MyAdapter(fm);mViewPager.setAdapter(adapter);}//ViewPager的适配器class MyAdapter extends FragmentPagerAdapter{public MyAdapter(FragmentManager fm) {super(fm);}//获取当前界面@Overridepublic Fragment getItem(int arg0) {// TODO Auto-generated method stubreturn mFg.get(arg0);}//ViewPager的界面总数@Overridepublic int getCount() {return mFg.size();}}private void __setViewPagerListener() {mRtLink.setSelected(true);//默认界面是连接//滑动时底部的按钮跟着动mViewPager.addOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {switch (arg0) {case R.id.bt1:mRtLink.setChecked(true);break;case R.id.bt2:mRtShow.setChecked(true);break;default:break;}}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageScrollStateChanged(int arg0) {}});}//RadioButton的点击事件public void doClick(View v) {switch (v.getId()) {case R.id.bt1:mViewPager.setCurrentItem(0);break;default:mViewPager.setCurrentItem(1);break;}}}
3,fragment的类
(1)fragment01类
package com.example.fragment;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class Fragment01 extends Fragment{@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubreturn inflater.inflate(R.layout.fragment01, container, false);}}
(2)fragment02类
package com.example.fragment;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class Fragment02 extends Fragment{@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubreturn inflater.inflate(R.layout.fragment02,null);}}目前就这些了,本人当前是个菜鸟,还请各位大神对对指点!!!三克油
1 0
- fragment+ViewPager的使用(页面的滑动切换)
- 安卓app页面跟随手指滑动而切换 ViewPager的使用 ViewPager+Fragment
- Viewpager+Fragment去除页面切换时的滑动翻页效果
- ViewPager+Fragment 实现滑动页面的效果
- Viewpager+Fragment实现页面的滑动
- Fragment+viewpager切换滑动页面Demo
- TabLayou+fragment+viewpager实现滑动切换页面
- Viewpager+Fragment实现左右滑动切换页面
- fragment+viewpager+tablayou实现滑动切换页面
- viewpager+fragment左右滑动切换页面
- 利用viewpager实现页面的滑动切换
- ViewPager和 Fragment 实现的页面切换
- ViewPager结合Fragment 实现的页面切换
- 【页面滑动】ViewPager的使用
- 使用Fragment实现的滑动组件ViewPager
- TabLayout+Fragment+ViewPager的标题滑动使用
- ViewPager的滑动切换
- viewpager+fragment页面切换,fragment用recylerview的坑
- [caffe] 源码分析
- 用硬盘安装系统步骤
- Linux常用命令
- MPAndroidChar--饼状图
- LINQ中的Func委托
- fragment+ViewPager的使用(页面的滑动切换)
- Maven deploy第三方包报400异常
- cronExpression cron表达式解释
- Android Voip 第二篇笔记
- ::before 和 ::after 伪元素用法
- Unity3d 中的 A*寻路
- 深度学习在自然语言处理研究上的进展
- 别人家的自定义listview
- MongoDB 初见指南