Fragment+ViewPager实现滑动换页

编程入门 行业动态 更新时间:2024-10-12 14:16:25

Fragment+ViewPager实现滑动<a href=https://www.elefans.com/category/jswz/34/1725034.html style=换页"/>

Fragment+ViewPager实现滑动换页

先看效果图:

虽然TabHost可以做出这样的效果,但是TabHost不能实现换页,这里用Fragment+ViewPager实现。
**1、在res/layout中新建每个自定义fragment的内容fragment1.xml……
2、在java代码中新建fragment1的类,并让其继承Fragment.要注意这里使用的是import android.support.v4.app.Fragment;的包,导入错了得不到想要的效果的。**

public class Fragment1Activity extends Fragment {@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {return inflater.inflate(R.layout.activity_fragment1,container,false);}

**类似的为fragment2.xml和fragment3.xml建立对应的类。
3、在主页面的.xml中加入ViewPager和fragment的标签。**

<RelativeLayout xmlns:android=""xmlns:tools="" android:layout_width="match_parent"android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"><android.support.v4.view.ViewPagerandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:id="@+id/viewPager"><android.support.v4.view.PagerTabStripandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/pagerTab"><fragment android:layout_height="fill_parent"android:layout_width="fill_parent"android:name="mhwang.fragmentandviewpager.Fragment1Activity"></fragment></android.support.v4.view.PagerTabStrip></android.support.v4.view.ViewPager></RelativeLayout>

4、建立自已的适配器类,继承自FragmentPagerAdapter需要实现以下几个方法。

/**** 自定义适配器* **/public class MyAdapter extends FragmentPagerAdapter{public MyAdapter(FragmentManager fm) {super(fm);}@Overridepublic Fragment getItem(int i) {return fragments.get(i);}@Overridepublic int getCount() {return fragments.size();}@Overridepublic CharSequence getPageTitle(int position) {return titles.get(position);}}

5、在主页面的Activity中继承FragmentActivity,并创建Fragment的数据集和标题集。

public class MainActivity extends FragmentActivity {private List<Fragment> fragments = new ArrayList<Fragment>();   //碎片列表private List<String> titles = new ArrayList<String>();      //标题列表private ViewPager viewPager;    //viewPager控件private PagerTabStrip tabStrip; //PagerTabStrip控件@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}private void init(){viewPager = (ViewPager)findViewById(R.id.viewPager);tabStrip = (PagerTabStrip)findViewById(R.id.pagerTab);Fragment1Activity fragment1 = new Fragment1Activity();Fragment2Activity fragment2 = new Fragment2Activity();Fragment3Activity fragment3 = new Fragment3Activity();//将自定义的fragment放进列表fragments.add(fragment1);fragments.add(fragment2);fragments.add(fragment3);titles.add("碎片1");titles.add("碎片2");titles.add("碎片3");//设置上方滑动条的属性tabStrip.setTabIndicatorColor(Color.RED);tabStrip.setBackgroundColor(Color.BLUE);tabStrip.setTextColor(Color.WHITE);viewPager.setBackgroundColor(Color.GRAY);viewPager.setAdapter(new MyAdapter(getSupportFragmentManager()));}

以下是实现的动态图:

更多推荐

Fragment+ViewPager实现滑动换页

本文发布于:2024-03-09 19:26:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1725905.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:换页   Fragment   ViewPager

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!