Android标签页TabLayout控件实战及ViewPager取消预加载

本文介绍了如何在Android中使用TabLayout控件,并结合ViewPager实现标签页效果。重点在于如何取消ViewPager的预加载功能,以优化资源使用和提升用户体验。文章提供核心代码示例,包括TabLayoutTestActivity.java、activity_tablayout_test.xml、PageFragment.java和fragment_page.xml。
摘要由CSDN通过智能技术生成

一、概述

在2015年的google大会上,google发布了新的Android Support Design库,里面包含了几个新的控件,其中就有一个TabLayout,它就可以完成TabPageIndicator的效果,而且还是官方的,最好的是它可以兼容到2.2以上版本,包括2.2。
依稀记得前几年要实现这样的功能用的还是viewpagerindicator开源库,如今既然谷歌推出了TabLayout,所以特地学习了一下。
使用之前需要添加依赖:

compile 'com.android.support:design:24.2.1'

二、实现效果图

这里写图片描述

TabLayout一般都是配合着ViewPager使用,众所周知,ViewPager有个预加载功能,在加载本页数据时,它会提前加载下页数据,可以极大的浪费资源,而且不利于用户体验,你如果调试我的源码就会发现,本文特地取消了ViewPager预加载。
主要是初始化Frament时给每个Fragment设置一个mTabPos常量,第一次进入时加以判断setCurrentItem的页是否和mTabPos相同,如果相同就加载,这样第一次就不会预加载,后面进行页面切换时,通过onPageSelected方法加载。

三、核心代码

1.页面TabLayoutTestActivity.java

package com.czhappy.effectdemo.activity;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;

import com.czhappy.effectdemo.R;
import com.czhappy.effectdemo.fragment.PageFragment;

import java.util.ArrayList;
import java.util.List;

/**
 * Description:
 * User: chenzheng
 * Date: 2017/1/20 0020
 * Time: 14:24
 */
public class TabLayoutTestActivity extends AppCompatActivity {
   

    private TabLayout mTabLayout;
    private ViewPager mViewPager;

    private SimpleFragmentPagerAdapter mAdapter;
    private List<Fragment> mFragments = new ArrayList<Fragment>();
    private String tabTitles[] = new String[]{
  "tab1","tab2","tab3", "tab4","tab5","tab6"};

    private int curTab=0;

    
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值