1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Android开发之ViewPager滑动页面效果实现(源代码分享)

Android开发之ViewPager滑动页面效果实现(源代码分享)

时间:2021-04-21 15:04:16

相关推荐

Android开发之ViewPager滑动页面效果实现(源代码分享)

我们先来谷歌官方文档对viewpager的介绍,该类允许用户通过页面翻转左右的数据,需要通过实现PagerAdapter适配器来生成视图显示的页面。因为注意这个类是早期设计和开发的,API可能会改变,并在以后更新兼容库,到时候我们需要做相应的处理。ViewPager最常用于结合Fragment,这是一个方便的方式来供应和管理每个页面的生命周期,我们后面的博客介绍相关的内容,今天我们先来简单实现viewpager的功能。

MainAcitivity的代码

package com.example.f10_viewpager;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.app.Activity;import android.support.v4.view.PagerAdapter;import android.support.v4.view.PagerTabStrip;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class MainActivity extends Activity {private View view1, view2, view3;// 需要滑动的页卡private ViewPager viewPager;private PagerTabStrip pagerTabStrip;private List<View> viewList;// 把需要滑动的页卡添加到这个list中private List<String> titleList;// viewpager的标题@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 像普通控件一样先初始化viewPager = (ViewPager) findViewById(R.id.viewpager);pagerTabStrip = (PagerTabStrip) findViewById(R.id.pagertab);pagerTabStrip.setDrawFullUnderline(false);//设置下划线不整页显示pagerTabStrip.setTextSpacing(1000);//设置标题之间的距离initView();MyAdapter pagerAdapter = new MyAdapter();viewPager.setAdapter(pagerAdapter);}//填充布局,设置每一页的标题private void initView() {view1 = findViewById(R.layout.layout1);view2 = findViewById(R.layout.layout2);view3 = findViewById(R.layout.layout3);viewList = new ArrayList<View>();// 将要分页显示的View装入数组中viewList.add(view1);viewList.add(view2);viewList.add(view3);titleList = new ArrayList<String>();// 每个页面的Title数据titleList.add("第一个页面");titleList.add("第二个页面");titleList.add("第三个页面");}public class MyAdapter extends PagerAdapter {@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}@Overridepublic int getCount() {return viewList.size();}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView(viewList.get(position));}@Overridepublic int getItemPosition(Object object) {return super.getItemPosition(object);}@Overridepublic CharSequence getPageTitle(int position) {return titleList.get(position);}// 将每一页的布局填充如ViewGroup容器中@Overridepublic Object instantiateItem(ViewGroup container, int position) {container.addView(viewList.get(position));return viewList.get(position);}};}

在我之间浏览博文的时候,有人提到过第30行代码设置标题的距离效果没有实现,不知道为什么,后来我调试了一下,发现应该是这个值要设置的大一些,我这里设置的就是1000就实现了一个页面只显示一个标题的效果。在layout布局文件下,我们首先得先创建三个简单的布局文件,来实现滑动效果,当然最重要的是main.xml的代码书写

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" > <android.support.v4.view.PagerTabStrip android:id="@+id/pagertab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top"/> </android.support.v4.view.ViewPager> </LinearLayout>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。