一手遮天 Android - view(集合类): ViewPager 基础 1

一手遮天 Android - view(集合类): ViewPager 基础 1,第1张

概述项目地址https://github.com/webabcd/AndroidDemo作者webabcd一手遮天Android-view(集合类):ViewPager基础1示例如下:/view/collection/ViewPagerDemo1.java/***ViewPager-页面切换控件*setCurrentItem()-指定ViewPager当前显示的页面的索引位置*

项目地址 https://github.com/webabcd/AndroidDemo
作者 webabcd

一手遮天 AndroID - vIEw(集合类): VIEwPager 基础 1示例如下:

/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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/999528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存