一手遮天 AndroID - vIEw(集合类): VIEwPager 基础 1示例如下:项目地址 https://github.com/webabcd/AndroidDemo
作者 webabcd
/vIEw/collection/VIEwPagerDemo1.java
/** * VIEwPager - 页面切换控件 * setCurrentItem() - 指定 VIEwPager 当前显示的页面的索引位置 * setAdapter() - 指定用于为 VIEwPager 呈现数据的 PagerAdapter 对象 * * 本例演示 * 1、如何通过自定义的 PagerAdapter 来为 VIEwPager 对象提供数据 * 2、PagerAdapter 会缓存 3 个页,即当前页、左边页和右边页 * 需要被缓存就调用 instantiateItem(),不需要被缓存就调用 destroyItem() * 3、如何为 VIEwPager 的每个页面添加类似 Tab 控件的标题 */package com.webabcd.androIDdemo.vIEw.collection;import androIDx.vIEwpager.Widget.PagerAdapter;import androIDx.vIEwpager.Widget.VIEwPager;import androIDx.appcompat.app.AppCompatActivity;import androID.os.Bundle;import androID.util.Log;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import com.webabcd.androIDdemo.R;import java.util.ArrayList;public class VIEwPagerDemo1 extends AppCompatActivity { private final String LOG_TAG = "VIEwPagerDemo1"; private VIEwPager mVIEwPager1; private VIEwPager mVIEwPager2; private VIEwPager mVIEwPager3; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_vIEw_collection_vIEwpagerdemo1); mVIEwPager1 = findVIEwByID(R.ID.vIEwPager1); mVIEwPager2 = findVIEwByID(R.ID.vIEwPager2); mVIEwPager3 = findVIEwByID(R.ID.vIEwPager3); sample(); } private voID sample() { VIEwPager[] vIEwPagerList = {mVIEwPager1, mVIEwPager2, mVIEwPager3}; for (VIEwPager vIEwPager: vIEwPagerList) { // 用于保存 VIEwPager 的每个 vIEw ArrayList vIEwList = new ArrayList<VIEw>(); LayoutInflater layoutInflater = getLayoutInflater(); vIEwList.add(layoutInflater.inflate(R.layout.activity_vIEw_collection_vIEwpagerdemo1_page1, null, false)); vIEwList.add(layoutInflater.inflate(R.layout.activity_vIEw_collection_vIEwpagerdemo1_page2, null, false)); vIEwList.add(layoutInflater.inflate(R.layout.activity_vIEw_collection_vIEwpagerdemo1_page3, null, false)); // 用于保存 VIEwPager 的每个 vIEw 的标题 ArrayList TitleList = new ArrayList<String>(); TitleList.add("红色"); TitleList.add("绿色"); TitleList.add("蓝色"); // 实例化自定义的 PagerAdapter MyPagerAdapter myPagerAdapter = new MyPagerAdapter(vIEwList, TitleList); // 指定 VIEwPager 的 PagerAdapter vIEwPager.setAdapter(myPagerAdapter); } } /** * 自定义 PagerAdapter 用于为 VIEwPager 提供数据 */ class MyPagerAdapter extends PagerAdapter { private ArrayList<VIEw> mVIEwList; private ArrayList<String> mTitleList; public MyPagerAdapter() { } public MyPagerAdapter(ArrayList<VIEw> vIEwList, ArrayList<String> TitleList) { super(); this.mVIEwList = vIEwList; this.mTitleList = TitleList; } // VIEwPager 的页面的数量 @OverrIDe public int getCount() { return mVIEwList.size(); } // 固定这么写就好 @OverrIDe public boolean isVIEwFromObject(VIEw vIEw, Object object) { return vIEw == object; } // 将 VIEwPager 的指定索引位置的 vIEw 添加进容器,并返回这个 vIEw @OverrIDe public Object instantiateItem(VIEwGroup container, int position) { VIEw vIEw = mVIEwList.get(position); container.addVIEw(vIEw); // 用于验证 PagerAdapter 会缓存 3 个页,即当前页、左边页和右边页 Log.d(LOG_TAG, "instantiateItem: " + position); return vIEw; } // 将 VIEwPager 的指定索引位置的 vIEw 从容器中删除 @OverrIDe public voID destroyItem(VIEwGroup container, int position, Object object) { container.removeVIEw(mVIEwList.get(position)); // 用于验证 PagerAdapter 会缓存 3 个页,即当前页、左边页和右边页 Log.d(LOG_TAG, "destroyItem: " + position); } // 返回 VIEwPager 的指定索引位置的 vIEw 的标题 @OverrIDe public CharSequence getPageTitle(int position) { return mTitleList.get(position); } }}
/layout/activity_vIEw_collection_vIEwpagerdemo1.xml
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:orIEntation="vertical"> <!-- VIEwPager - 页面切换控件 --> <androIDx.vIEwpager.Widget.VIEwPager androID:ID="@+ID/vIEwPager1" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:layout_weight="1"> </androIDx.vIEwpager.Widget.VIEwPager> <!-- VIEwPager - 页面切换控件 PagerTitleStrip - 为 VIEwPager 增加不同页面的标题(类似 Tab 控件),标题无下划线 --> <androIDx.vIEwpager.Widget.VIEwPager androID:ID="@+ID/vIEwPager2" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:layout_weight="1"> <androIDx.vIEwpager.Widget.PagerTitleStrip androID:layout_wIDth="wrap_content" androID:layout_height="32dp" androID:background="@color/orange" androID:textcolor="@color/white" /> </androIDx.vIEwpager.Widget.VIEwPager> <!-- VIEwPager - 页面切换控件 PagerTabStrip - 为 VIEwPager 增加不同页面的标题(类似 Tab 控件),标题有下划线 --> <androIDx.vIEwpager.Widget.VIEwPager androID:ID="@+ID/vIEwPager3" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:layout_weight="1"> <androIDx.vIEwpager.Widget.PagerTabStrip androID:layout_wIDth="wrap_content" androID:layout_height="32dp" androID:background="@color/orange" androID:textcolor="@color/white" /> </androIDx.vIEwpager.Widget.VIEwPager></linearLayout>
/layout/activity_vIEw_collection_vIEwpagerdemo1_page1.xml
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:background="@color/red" androID:orIEntation="vertical"> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="page 1" androID:textcolor="@color/white" androID:textSize="24sp"/></linearLayout>
/layout/activity_vIEw_collection_vIEwpagerdemo1_page2.xml
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:background="@color/green" androID:orIEntation="vertical"> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="page 2" androID:textcolor="@color/white" androID:textSize="24sp"/></linearLayout>
/layout/activity_vIEw_collection_vIEwpagerdemo1_page3.xml
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:background="@color/blue" androID:orIEntation="vertical"> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="page 3" androID:textcolor="@color/white" androID:textSize="24sp"/></linearLayout>
总结项目地址 https://github.com/webabcd/AndroidDemo
作者 webabcd
以上是内存溢出为你收集整理的一手遮天 Android - view(集合类): ViewPager 基础 1全部内容,希望文章能够帮你解决一手遮天 Android - view(集合类): ViewPager 基础 1所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)