Android界面布局大集合(Fragment+ViewPager)

前言:对一个Android应用来说,界面布局是非常重要的,但是现在的一些资料都没有对布局的系统的整理,一些博客写的东西也太零散,所以我就整理了一下这些界面的用法。如果有不对的地方请读者们指出,我一定及时改正。一、普通的ViewPager效果图 1.MainActivity布局文件

前言:对一个Android应用来说,界面布局是非常重要的,但是现在的一些资料都没有对布局的系统的整理,一些博客写的东西也太零散,所以我就整理了一下这些界面的用法。如果有不对的地方请读者们指出,我一定及时改正。

一、普通的ViewPager

效果图
普通的ViewPager截图

1.MainActivity布局文件

<LinearLayout   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:orientation="vertical"
    tools:context="com.tzy.layoutdemo.MainActivity">

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="300dp"/>

</LinearLayout>

2.MainActivity里面

2.1把布局的View加到List里面
LayoutInflater inflater = getLayoutInflater();
view1 = inflater.inflate(R.layout.view_01,null);
view2 = inflater.inflate(R.layout.view_02,null);
view3 = inflater.inflate(R.layout.view_03,null);

mViewList = new ArrayList<>();
mViewList.add(view1);
mViewList.add(view2);
mViewList.add(view3);
2.2继承PagerAdapter,把viewList作为参数传进去,也可以直接用匿名内部类的形式

这里需要重写的方法如下:

  • getCount 返回当前有效视图的个数
    ①把当前页面增加到ViewPager里面
    ②并且返回一个Object,这个Object是标识当前页面的一个对象,按照官方文档的解释,ViewPager把每个视图通过键联系起来,键可以是当前页面的View,也可以是positon,或者可以代表当前页面的任意值
  • instantiateItem 增加视图到ViewPager
  • destroyItem 把ViewPager里面的视图移除
  • isViewFromObject 参数object代表instantiateItem返回的键和页面的视图是否对应view == object (object表示的是返回的View)

选择性重写的方法:getPageTitle() 方法可以通过position设置标题

PagerAdapter pagerAdapter = new PagerAdapter() {

            //返回当前有效视图的个数
            @Override public int getCount() {
                return mViewList.size();
            }

            /*功能:该函数用来判断instantiateItem(ViewGroup, int)函数所返回来的Key
            与一个页面视图是否是代表的同一个视图(即它俩是否是对应的,对应的表示同一个View)*/
            @Override
            public boolean isViewFromObject(View view, Object object) {
                return view == object;
            }

            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                container.addView(mViewList.get(position));
                //将当前页面本身的View作为key 也可以是代表当前页面的任意值,比如position
                return mViewList.get(position);
            }

            @Override
            public 
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值