cathome 猫家 开发日记-tablayout+viewpager+fragment

概述

1.tablayout。纯粹就是一个滑动菜单,只是多加一个事件,触发viewpager的滑动。

2.viewpage,是主角,一般是设定  adapter,在 adapter中,决定如何显示view,以及显示多少个view.

这里系统已经封装了一个adapter叫 fragmentadapter.转为针对view里面放fragment  的。并且主要方法为 public Fragment getItem(int i)

所以建立多个fragment  .并传递给adapter. 就可以。主体上结构其实很简单。

1.初始化2个空间
        FindControls(view_content);
        SetupTablayout();
        SetupViewPager();

2.简单到死。建立 list<fragment> 传递给 adapter,这个派生的adapter。其实很简单。
    private void SetupViewPager()
    {
        List<Fragment> fragments=new ArrayList<>();
        fragments.add(new life());
        fragments.add(new birth());
        fragments.add(new illness());
        fragments.add(new other());

        LSUIViewPagerFragmentAdapter adapter_fragment=new LSUIViewPagerFragmentAdapter(getSupportFragmentManager(),fragments);
        mPages.setAdapter(adapter_fragment);
    }
派生的adapter
package com.utils.widgets;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

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

public class LSUIViewPagerFragmentAdapter extends FragmentPagerAdapter
{
    private List<Fragment> mFragments;

    public LSUIViewPagerFragmentAdapter(FragmentManager fm, List<Fragment> fragments)
    {
        super(fm);
        mFragments=fragments;
        if(mFragments==null)
        {
            mFragments=new ArrayList<>();
        }
    }

    @Override
    public Fragment getItem(int i)
    {
        return mFragments.get(i);
    }

    @Override
    public int getCount()
    {
        return mFragments.size();
    }
}

原文地址:https://www.cnblogs.com/lsfv/p/9918035.html

时间: 2024-10-02 23:50:33

cathome 猫家 开发日记-tablayout+viewpager+fragment的相关文章

cathome 猫家 开发日记-底部导航

0.内容页没有采用常用的 fragment.  而是采用自认为更简单的直接继承方式. 1.使用继承来实现复用. 2.基类处理大页面布局和底部的导航显示以及逻辑. 3.采用线性布局.平分.tv居中.固定字体. 4.控件采用样式来集中属性.有分支的情况采用dranable  的selecter来处理.非常简洁明了. 视图布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:and

cathome 猫家 开发日记-webservice服务 ,生成json.

概述,采用熟悉的c# 语言. 1.用asmx .微软的web服务的标准格式.方便. 2.由方法生成json字符.只是利用ms 的框架而已. 配置文档. <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> &l

cathome 猫家 开发日记-自定义控件

概述 根本就是一句话":  自定义一个类(group view的派生类),在构造函数中,生成view,并加入他们.   语句: this.addView(view); 所有的步骤,都是这句话的扩展和补充罢了. 一般的流程. 整个流程都好理解,就是属性是如何加载上去的.没有去认真研究.属性问题操作上就是感觉 one: 建立属性文件 two.在布局文件多加了一行 xmlns:custom="http://schemas.android.com/apk/res-auto" thre

Android开发之漫漫长途 Fragment番外篇——TabLayout+ViewPager+Fragment

该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解Android 卷Ⅰ,Ⅱ,Ⅲ>中的相关知识,另外也借鉴了其他的优质博客,在此向各位大神表示感谢,膜拜!!! 前言 上一篇文章中我们使用底部导航+Fragment的方式实现了Android主流App中大都存在的设计.并命名其为"Fragment最佳实践",作为想到单独使用Fragment的用

Android滑动导航菜单TabLayout+ViewPager+Fragment

1.主要的Activity--MemberDetailActivity 2.Activity视图的xml文件--R.layout.activity_member_detail 3.自定义的Fragment子类--CustomTrainingFragment 4.Fragment视图的xml文件-- 5.自定义Fragment子类的适配器 //1.MemberDetailActivitypackage com.vimems.coach; import android.os.Bundle; impo

关于tablayout+viewpager+fragment配合使用的一点记录

最近在写项目的时候遇到要求使用tablayout和fragment,遇到了这里记录一下大致思路. tablayout是头部可以左右切换的头部控制栏控件,配合viewpager使用,fragment是碎片,可以放在viewpager里面,实现类似网易云音乐首页切换的效果.效果图如下: 首先添在build.gradle里面添加依赖: 1 implementation 'com.android.support:support-v4:28.0.0' 2 implementation 'com.andro

安卓开发之使用viewpager+fragment实现滚动tab页

闲着.用viewpager+fragment实现了个滚动tab..轻拍,以后会陆续发先小东西出来..爱分享,才快乐.demo见附件.. Java代码   package com.example.demo; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.

Android 导航条效果实现(六) TabLayout+ViewPager+Fragment

TabLayout 一.继承结构 public class TabLayout extends HorizontalScrollView java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.HorizontalScrollView ? android.support.design.widget.TabLayout 二.TabLayou

TabLayout+ViewPager+Fragment制作页卡

本人很懒,直接上代码了. 布局文件: <?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-