一、TabLayout+ViewPager+Fragment方法的思路:

  1. 创建存储多个Fragment实例的列表
  2. 创建PagerAdapter实例并关联到Viewpager中
  3. 将ViewPager关联到Tablayout中
  4. 根据需求改写Tablayout属性

二、使用方法

1、引入

//TabLayout+ViewPagerimplementation 'com.android.support:design:28.0.0'implementation 'com.android.support:support-v4:28.0.0'

2、布局

<?xml version="1.0" encoding="utf-8"?>
<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=".MainActivity"><android.support.design.widget.TabLayoutandroid:id="@+id/tabLayout_tabs"android:layout_width="match_parent"android:layout_height="40dp" /><android.support.v4.view.ViewPagerandroid:id="@+id/viewPager_content"android:layout_width="match_parent"android:layout_height="match_parent" />
</LinearLayout>

3、fragment

package com.example.pagechangedemo;import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;/*** Created by Administrator on 2019/4/23* <p>* desc:*/
public class oneFragment extends BaseFragment {/*** 标志位,标志已经初始化完成*/private boolean isPrepared;/*** 是否已被加载过一次,第二次就不再去请求数据了*/private boolean mHasLoadedOnce;@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {if (mView == null) {// 需要inflate一个布局文件 填充FragmentmView = inflater.inflate(R.layout.fragment_one, container, false);initView();isPrepared = true;
//        实现懒加载lazyLoad();}//缓存的mView需要判断是否已经被加过parent, 如果有parent需要从parent删除,要不然会发生这个mView已经有parent的错误。ViewGroup parent = (ViewGroup) mView.getParent();if (parent != null) {parent.removeView(mView);}return mView;}/*** 初始化控件*/private void initView() {Bundle bundle = getArguments();String args = bundle.getString("agrs1");}@Overridepublic void lazyLoad() {if (!isPrepared || !isVisible || mHasLoadedOnce) {return;}//填充各控件的数据mHasLoadedOnce = true;}public static oneFragment newInstance(String param1) {oneFragment fragment = new oneFragment();Bundle args = new Bundle();args.putString("agrs1", param1);fragment.setArguments(args);return fragment;}
}

完整demo地址:https://github.com/chaoyu168/pageChangeDemo

Android--TabLayout+ViewPager+Fragment实现切页展示相关推荐

  1. TabLayout+ViewPager+Fragment实现切页展示

    写在前面 目前大多数的APP都采用的是几个Tab标签以及多个界面滑动的形式来提供多层次的交互体验,最为常用的做法就是采用TabLayout+ViewPager+Fragment的方式,最近在公司项目中 ...

  2. 使用TabLayout+ViewPager+Fragment实现切页展示

    使用TabLayout+ViewPager+Fragment是比较常见的实现切页展示的方式,本例是在fragment中实现主要代码 步骤: 1,定义TabLayout和ViewPager的布局 2,实 ...

  3. Android实现一个简易的新闻列表APP(TabLayout+ViewPager+Fragment)

    Android实现一个简易的新闻列表APP(TabLayout+ViewPager+Fragment) 文章目录 Android实现一个简易的新闻列表APP(TabLayout+ViewPager+F ...

  4. TabLayout+Viewpager+Fragment实现分页滚动

    效果如上,顶部标签滚动底下的页面也跟着滚动 灰色的标签只是一个recyclerview装起来的 这里用TabLayout+Viewpager+Fragment实现 先看布局 <?xml vers ...

  5. android左右滑动fragment,Android基于ViewPager+Fragment实现左右滑屏效果的方法

    本文实例讲述了Android基于ViewPager+Fragment实现左右滑屏效果的方法.分享给大家供大家参考,具体如下: 1.xml布局模板 android:id="@+id/local ...

  6. TabLayout+ViewPager+Fragment(内部:TabLayout+ViewPager+ Fragment)需要注意!!

    之前面试的时候,被面试官问道ViewPager嵌套ViewPager怎么处理的.我还一直在回答用最外层的vp的onInterceptTouchEvent来处理怎样怎样(注意是代码没有写过,就这样说了. ...

  7. 小牛的安卓笔记-----底部导航栏的实现以及用TabLayout+ViewPager+Fragment实现页面滑动切换

    昨夜西风凋碧树,独上高楼,望尽天涯路. 今天难得有时间,准备写一写我们在APP中经常用到的页面形式,废话不多说,直接一张图看看页面效果你就知道为啥是常用的页面形式.先看看逻辑和最后的效果是怎么样的: ...

  8. TabLayout+ViewPager+Fragment中Fragment的可见和不可见问题

    场景 TabLayout+ViewPager+Fragment的使用过程中需要判断Fragment是否对用户可见,监听Fragment由不可见变为可见的事件 解决方案 重写Fragment的setUs ...

  9. Tablayout+ViewPager+Fragment 实现页面切换

    项目也快上线了,就来总结下Tablayout+ViewPager+Fragment 的使用啦 主activity public class DoSomethingAct extends BaseAct ...

最新文章

  1. nginx 重写 隐藏index.php
  2. tortoisesvn › prefer local prefer repository
  3. 信息系统项目管理案例3
  4. REST WebServices学习
  5. 后端:Java 8 中的 Map 实用操作,学习下!
  6. 1-4 无监督学习(Unsupervised Learning)
  7. linux uart中断程序,linux 串口中断实现
  8. python--正则表达式 字符串匹配
  9. 十年维护专家的“秘籍
  10. Panoptic FPN-Panoptic Feature Pyramid Networks用于全景分割的特征金字塔网络
  11. idea 编译时提示找不到符号
  12. mysql ocp考试大纲_MySQL OCP考试大纲
  13. Setup Factory打包winform程序
  14. selenium 网址
  15. 数据库原理及应用-李唯唯主编-实验3-4
  16. 征信篇: 如何保护个人隐私,防止征信受损?
  17. Failed to load the JNI shared library 的解决方法
  18. 今日头条能干掉微信么? | 畅言
  19. 初识DTW(动态时间规整)算法及Python实现例
  20. 对于感情的一点小感悟

热门文章

  1. ad Hoc打包测试
  2. APP——流量测试——adb命令简单测试
  3. 一些好用的 alias 命令
  4. 文件夹的“只读”属性
  5. 图解HIVE页面单跳转化率
  6. 关于计算机素养论文,计算机应用及青少年网络素养培养论文
  7. 剑指offer—丑数
  8. mcnpf5输出结果_MCNP学习笔记-计数卡F6
  9. VW和VH移动端布局
  10. Cortex-M3处理器出众的控制和连通性