Android ViewPager +Fragment+TabLayout 实现滑动导航栏

Android导航栏设计实例:TabLayout+ViewPager+Fragment 本篇文章将介绍如何使用TabLayout、ViewPager和Fragment来实现一个漂亮且功能强大的导航栏效果。每个Fragment都有自己的生命周期和布局文件,可以在Activity中嵌入多个Fragment来构建复杂的界面。本文介绍了如何使用TabLayout、ViewPager和Fragment来实现Android应用程序中的导航栏效果。以上就是使用TabLayout、ViewPager和Fragment实现Android导航栏效果的详细步骤和相应的源代码。2.3 创建Fragment。 阅读详情

       ViewPager 让我印象最深的是,APP的引导页,当我们下载好一个软件点进去,APP就会有三张这样的引导页(告诉用户这款APP基本用途和操作)。当然,ViewPager 不止这样,

       ViewPager 最大作用就是允许使用者滑动数据页面,简单的说ViewPager 是一种布局管理器。它是android扩展包v4包中的类。ViewPager类直接继承了ViewGroup类,所有它是一个容器类,可以在其中添加其他的view类。和List很像,需要通过适配器(PagerAdapter)来提供数据,同时官方还推荐我们ViewPager和Fragment一起使用,并且提供了专门的FragmentPagerAdapter和FragmentStatePagerAdapter类供Fragment中的ViewPager使用。

     从ViewPager 简单例子开始学习吧!三步骤:

一:主布局加入ViewPager ,另外写三个滑动布局view:

activity_view_pager.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

    </android.support.v4.view.ViewPager>

</RelativeLayout>

第二步:完善适配器,

public class ViewPagerAdapter extends PagerAdapter {
    private List<View> viewList;
    public ViewPagerAdapter(List<View> viewList){
        this.viewList=viewList;
    }
    /**
     *返回页卡的数量
     * @return
     */
    @Override
    public int getCount() {
        return viewList.size();
    }

    /**
     *判断view是否来自于对象
     * @param view
     * @param object
     * @return
     */
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }

    /**
     *实例化一个页卡
     * @param container
     * @param position
     * @return
     */
    @Override
    public Object instantiateItem(ViewGroup container,
                                  int position) {
        container.addView(viewList.get(position));
        return viewList.get(position);
    }

    /**
     * 销毁一个页卡
     * @param container
     * @param position
     * @param object
     */
    @Override
    public void destroyItem(ViewGroup container, 
                            int position, Object object) {
        container.removeView(viewList.get(position));
    }
}

第三步:java代码部分

package com.example.dell.viewpagertest;

import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import java.util.ArrayList;
import java.util.List;

public class MyViewPager extends AppCompatActivity {
    private ViewPager viewPager;
    private View view1,view2,view3;
    private List<View> list;
    private ViewPagerAdapter pagerAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_pager);
        initLayout();//初始化实例方法
        //创建PagerAdapter适配器
        pagerAdapter=new ViewPagerAdapter(list);
        //ViewPager加载适配器
        viewPager.setAdapter(pagerAdapter);
    }
    public void initLayout(){
        viewPager=(ViewPager) findViewById(R.id.view_pager);
        list=new ArrayList<View>();
        //通过View对象去作为ViewPager数据源
        view1=View.inflate(this,R.layout.layout_view1,null);
        view2=View.inflate(this,R.layout.layout_view2,null);
        view3=View.inflate(this,R.layout.layout_view3,null);
        list.add(view1);
        list.add(view2);
        list.add(view3);
    }
}

效果图:

主布局的话,记得添加的是V4包的ViewPager ,同时别忘了android:layout_gravity="center"。

咱们重点关注适配器(PagerAdapter),继承这个类的时候,我们至少需要重写它的四个方法:

  • int getCount() 
  • boolean isViewFromObject(View arg0, Object arg1)
  • Object instantiateItem(ViewGroup container, int position)
  • void destroyItem(ViewGroup container, int position,Object object)

      ViewPager 可以加入标题,让标题指引滑动,PagerTitleStrip和PagerTabStrip都是ViewPager 当前页面上一个页面和下一个页面的非交互指示器,一般作为ViewPager 子控件被添加到xml布局文件中。通过android:layout_gravity""属性设置为top或bottom来决定它显示在ViewPager 的头部或底部。每个页面的标题是通过适配器的getPageTitle(int)函数提供给ViewPager的。这里只讲一个,因为他们的用法一样,就简单说说他们的不同点吧!

我们通过上面的例子来进行修改,只贴出部分增加的代码:

主布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

        <android.support.v4.view.PagerTitleStrip
            android:id="@+id/pager_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top">

        </android.support.v4.view.PagerTitleStrip>

    </android.support.v4.view.ViewPager>

</RelativeLayout>

适配器我们增加了一个方法和一个构造内容:

private List<View> viewList;
private List<String> tabList;
public ViewPagerAdapter(List<View> viewList,List<String> tabList){
    this.viewList=viewList;
    this.tabList=tabList;
}
 
/**
 * 根据位置返回当前所对应的标题。
 * @param position
 * @return
 */
@Override
public CharSequence getPageTitle(int position) {
    return tabList.get(position);
}
 
最后是java代码:
private List<String> tabList;//标题
private PagerTitleStrip titleStrip;
//标题
titleStrip=(PagerTitleStrip) findViewById(R.id.pager_title);
tabList=new ArrayList<String>();
tabList.add("TAB1");
tabList.add("TAB2");
tabList.add("TAB3");
//创建PagerAdapter适配器
pagerAdapter=new ViewPagerAdapter(list,tabList);
 

 效果图:

       从效果图来看, 些小伙伴可能想到,我们可不可以点击来滑动 呢?还有一个问题,我们上面是直接将布局设置为背景图片,那如果是一百张照片,那不成我们要写一百个布局,这太恐怖了吧!其实ViewPager 和碎片一起使用,效果会更好,官方强力推荐我们那样做。效果图看着不怎么优美,我们来看看终极版例子:ViewPager +Fragment+TabLayout

主布局:还有其他三个布局,不贴了,都是背景图片,自己弄(和上面例子一样)。

<?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">

    <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="40sp"
        app:tabMode="scrollable"
        app:tabGravity="center"
        app:tabTextColor="@color/black"
        app:tabIndicatorColor="@color/colorPrimaryDark"
        app:tabSelectedTextColor="@color/colorPrimaryDark"
        app:tabTextAppearance="@android:style/TextAppearance.Holo.Large">

    </android.support.design.widget.TabLayout>

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

    </android.support.v4.view.ViewPager>
</LinearLayout>

加载碎片布局:只贴一个,其他两个类也一样,

public class TabFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_tab1,container, false);
    }
}

适配器:

public class MyTabAdapter extends FragmentPagerAdapter{

    private List<Fragment> fragmentList;
    private List<String> stringList;//存放标题
    public MyTabAdapter(FragmentManager fm, List<Fragment> fragmentList,List<String> stringList){
        super(fm);
        this.stringList=stringList;
        this.fragmentList=fragmentList;
    }
    @Override
    public Fragment getItem(int position) {
        return fragmentList.get(position);
    }

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

    //此方法用来显示tab上的名字
    @Override
    public CharSequence getPageTitle(int position) {

        return stringList.get(position % stringList.size());
    }

}

Java代码:

package com.xhm.dell.zaiwo;

import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

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

public class MyZaiWo extends FragmentActivity {

    private TabLayout tabLayout;
    private ViewPager viewPager;
    private List<Fragment> fragmentList;
    private List<String> stringList;//存放标题
    private MyTabAdapter tabAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_zai_wo);
        viewPager = (ViewPager)findViewById(R.id.tab_pager);
        tabLayout = (TabLayout)findViewById(R.id.tab_layout);
        stringList = new ArrayList<String>();
        stringList.add("TAB1");
        stringList.add("TAB2");
        stringList.add("TAB3");

        fragmentList = new ArrayList<Fragment>();
        fragmentList.add(new TabFragment());
        fragmentList.add(new TabFragment2());
        fragmentList.add(new TabFragment3());

        tabLayout.addTab(tabLayout.newTab().setText("Tab1"));
        tabLayout.addTab(tabLayout.newTab().setText("Tab2"));
        tabLayout.addTab(tabLayout.newTab().setText("Tab2"));
        /*也可以这样写
        TabLayout.Tab tab1 = tabLayout.newTab().setText("Tab1");
        tabLayout.addTab(tab1);
        TabLayout.Tab tab2 = tabLayout.newTab().setText("Tab2");
        tabLayout.addTab(tab2);
        TabLayout.Tab tab3 = tabLayout.newTab().setText("Tab3");
        tabLayout.addTab(tab3);
         */
         tabAdapter = new MyTabAdapter(getSupportFragmentManager(),fragmentList,stringList);
        viewPager.setAdapter(tabAdapter);
        tabLayout.setupWithViewPager(viewPager);
        tabLayout.setTabMode(TabLayout.MODE_FIXED);
    }

    //偷懒模式。多个fragment时使用,
    @Override
    protected void initView() {
        ButterKnife.bind(this);
        stringList = new ArrayList<String>();
        stringList.add("双色球");
        stringList.add("大乐透");
        stringList.add("福彩3D");
        stringList.add("七乐彩");
        stringList.add("七星彩");
        stringList.add("排列3");
        stringList.add("排列5");
        stringList.add("足彩胜负/任九");
        stringList.add("竞彩足球");
        stringList.add("北京单场");
        stringList.add("竞彩篮球");

        fragmentList = new ArrayList<Fragment>();
        for (int i = 0; i < 11; i++) {
            BlankFragment blankFragment = BlankFragment.newInstance(i+"");
            fragmentList.add(blankFragment);
        }
        for (int i = 0; i < 11; i++) {
            mHighTab.addTab(mHighTab.newTab().setText("Tab" + i));
        }

        tabAdapter = new HighGradeTabAdapter(getSupportFragmentManager(), fragmentList, stringList);
        mHighPager.setAdapter(tabAdapter);

        mHighTab.setupWithViewPager(mHighPager);

        Log.e("initView", "mHighPager.getCurrentItem(): " + mHighPager.getCurrentItem());


       //记得在fragment中添加如下代码
       //private static final String KEY = "title";
       /*public static BlankFragment newInstance(String str) {
           BlankFragment fragment = new BlankFragment();
           Bundle bundle = new Bundle();
           bundle.putString(KEY, str);
           fragment.setArguments(bundle);
           return fragment;
        }*/
    }

}


效果图:

怎么样?是不是美多了。看看代码中又有那些变化了:

布局中多出了个TabLayout,不用担心,这个不难(自己学一下,会了更好)

 

java代码中,我们继承的是FragmentActivity而不是Activity了,为咋?这里因为我们要兼容是3.0以下版本,所以需继承FragmentActivity,通过getSupportFragmentManager()获取FragmentManager;3.0及其以上版本,只需继承Activity,通过getFragmentManager获取事务。
 

重点说下适配器:

谷歌官方认为,ViewPager应该和Fragment一起使用时,此时ViewPager的适配器应该是FragmentPagerAdapter,当你实现一个FragmentPagerAdapter,你必须至少覆盖以下方法:

getCount() //还回view的数量

getItem()

  • 该类中新增的一个虚函数。函数的目的为生成新的 Fragment 对象。重载该函数时需要注意这一点。在需要时,该函数将被 instantiateItem() 所调用。
  • 如果需要向 Fragment 对象传递相对静态的数据时,我们一般通过 Fragment.setArguments() 来进行,这部分代码应当放到 getItem()。它们只会在新生成 Fragment 对象时执行一遍。
  • 如果需要在生成 Fragment 对象后,将数据集里面一些动态的数据传递给该 Fragment,那么,这部分代码不适合放到 getItem() 中。因为当数据集发生变化时,往往对应的 Fragment 已经生成,如果传递数据部分代码放到了 getItem() 中,这部分代码将不会被调用。这也是为什么很多人发现调用 PagerAdapter.notifyDataSetChanged() 后,getItem() 没有被调用的一个原因。

除了这个适配器还有一个适配器(FragmentStatePagerAdapter)。这两个适配器都是继承自 PagerAdapter,更专注于每一页均为 Fragment 的情况。FragmentPagerAdapter类内的每一个生成的 Fragment 都将保存在内存之中,因此适用于那些相对静态的页,数量也比较少的那种;如果需要处理有很多页,并且数据动态性较大、占用内存较多的情况,应该使用FragmentStatePagerAdapter适配器。

 

Android ViewPager滑滑的~~~





安卓 竖直选项卡 verticaltablayout_viewpager 安卓 竖直选项卡 verticaltablayout_viewpager 实现类似京东 拼多多商品分类, 美团外卖点单页面效果 立即下载

相关推荐

Android viewpager实现竖向滑动(支持最新的support-v13)

这个例子为VerticalViewPager。 比Jake Wharton 的 DirectionalViewPager更强大!更兼容!更稳定! 支持最新的support-v13,support-v4,你懂的。不会出现DirectionalViewPager的各种 NullPointerException!

Fragment+ViewPage+TabLayout

TabLayout介绍 TabLayout 是一个横向标签显示的布局,效果就是现在很多新闻客户端的那种顶部标签展示效果,并支持指示器、 ViewPager 联动 注意事项 Android最新版本 也就是AndoirdX是引用不到TabLayout的,必须加上 implementation ‘com.android.support:design:28.0.0’ 这个依赖,同时要把build.grad...

yaojiangyu的博客 517

Ubuntu20.04下Docker无缝升级实战指南

本文提供了一份在Ubuntu20.04系统上安全、无缝升级Docker的实战指南。文章详细阐述了升级前的版本检查、数据备份等准备工作,逐步演示了通过APT包管理器进行升级或指定版本安装的操作步骤,并强调了升级后的验证与常见问题回滚方案,确保业务容器平稳过渡。

postgres8guard的博客 478

Android 底部导航栏(三、ViewPager+TabLayout+Fragment)简单易懂

Android 3.0后引入的一个UI控件——ViewPager(视图滑动切换工具),Viewpager使用起来就是我们通过创建adapter给它填充多个view,左右滑动时,切换不同的view。Google官方是建议我们使用Fragment来填充ViewPager的,这样 可以更加方便的生成每个Page,以及管理每个Page的生命周期。可以用来主页/模块切换,图片轮播,新手引导等等。ViewPager 全面总结_淡然一笑、的博客-优快云博客_viewpager。

Android 领域开发程序员,希望通过写博客的方式不断的总结提升自己,大家共同进步哦! 6449

【Python】SUMO + Python 联合仿真平台

强化学习的核心思想是让智能体 (Agent) 通过与环境 (Environment) 的交互来学习如何做出最优决策,以最大化累积奖励 (Cumulative Reward)。在交通场景中,智能体可以是交通信号控制器、自动驾驶车辆或交通管理中心,环境则是 SUMO 模拟的交通路网,奖励则与交通效率、安全、环保等目标相关。交通系统本质上是动态的、随机的、高度复杂的系统,传统的基于规则或模型的优化方法在面对不断变化的需求和突发事件时,往往显得力不从心。强化学习的优势在于:在交通领域,强化学习已经被广泛应用于:为了

宅男很神经 1988

从零构建C++ Gerber解析器:以PCB缺陷检测为目标的实战指南

本文是一份面向PCB缺陷检测项目的实战指南,详细介绍了如何从零开始使用C++构建高性能的Gerber文件解析器。文章深入剖析了Gerber RS-274X格式,并提供了完整的开发环境搭建、核心数据结构设计、解析步骤实现以及为缺陷检测优化的具体方案,旨在帮助开发者获得对PCB制造数据的深度控制与极致性能。

weixin_29291185的博客 184

Android tablayout + viewpager +Fragment实现 选项卡功能

选项卡实现的方法有很多,我们这里选用 tablayout+viewpager+fragment的方法1、首先我们需要一个展示界面(activity/fragment) 2、我们需要我们的重头戏tablayout、viewpager 来设置我们的布局 3、设置数据 4、将tablayout 和viewpager关联1、我们创建一个activity 名为 PeopleOfficeActivity 2、在 PeopleOfficeActivity的布局文件activity_people_office.xml中布局

qq_29247839的博客 601

保姆级避坑指南:Mid-360雷达到手后,用livox_ros_driver2从接线到出点云的完整流程

本文提供Mid-360雷达到手后的完整使用指南,涵盖从硬件接线、网络配置到livox_ros_driver2驱动的安装与调试,帮助用户避开常见陷阱,实现点云数据的稳定输出与可视化。重点解析了配置文件的参数设置和点云格式选择,确保用户能够高效部署和使用Mid-360雷达。

weixin_30733003的博客 483

Iwfu-TabLayout实现滑动标签页

继续上一篇NavigationView的那一个例子,这里我们来使用tabLayout和ViewPager配合使用实现滑动标签页.效果如图:添加依赖:使用:(AndroidStudio为例)build.gradle添加dependencies依赖 compile 'com.android.support:design:22.2.0' 要根据自己工程的编译版本选择依赖哪个版本的design

成成成成成成成成成成成成成成丶 4213

为什么传统CNN在视网膜分割中败给Mamba?从血管拓扑学揭秘Serp-Mamba的蛇形扫描黑科技

本文深入分析了传统CNN在视网膜血管分割任务中的局限性,特别是在处理高分辨率图像和复杂血管拓扑结构时。针对这些问题,文章重点介绍了Serp-Mamba模型的核心创新——蛇形交织自适应扫描(SIA)机制,该机制通过让扫描路径自适应地贴合血管曲率,并结合模糊驱动双重校准(ADDR)模块应对极端类别失衡,从而在视网膜血管分割任务上实现了性能的显著突破。

ss78901的博客 891

2025年华为杯中国研究生数学建模竞赛A题 通用神经网络处理器下的核内调度问题 思路+代码

针对通用神经网络处理器下的核内调度问题,我们提出了一套基于分层优化框架的系统性解决方案。该方案首先通过缓存敏感的启发式拓扑排序算法生成最小峰值缓存占用的调度序列,在满足计算图依赖关系的前提下优先选择能够释放或减少缓存占用的节点;随后采用最佳适应算法进行精细化的缓存分配,结合LRU换出策略动态管理多级缓存空间,最小化额外数据搬运量;最后引入多目标遗传算法进行联合优化,在严格控制数据搬运量不显著增加的前提下,通过关键路径分析、流水线并行和数据预取等技术进一步优化总执行时间。

YOLO 785

Android中竖着的tab栏——VerticalTablayout

https://www.jianshu.com/p/a9ab3dca0f7c 效果图 image.png 1.添加依赖 //垂直的tablayout implementation 'q.rorbin:VerticalTabLayout:1.2.5' 2.xml文件中添加控件【VerticalTabLayout集合帧布局使用,fragment开启事物的方法,或者直接用竖着的ViewPager】 <?xml version="1.0" encoding="utf..

az44yao的专栏 2878

踩遍Windows所有坑:Codex CLI桌面端+命令行双环境安装避坑实战

Windows下装Codex CLI的坑,本质上都是Windows本身的路径、环境变量、权限、编码这些历史遗留问题,和工具本身关系不大。只要避开中文路径、正确配置PATH、注意终端环境差异,其实安装非常简单。这套双环境方案配好之后,桌面端适合可视化调试、多会话管理,终端适合嵌入编辑器、脚本调用,一套配置两边通用,体验还是很流畅的。按照上面的流程走,基本不会出大问题,就算出问题也能在排查表里找到对应解法。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 297

Android开发使用TabLayout+ViewPager+Fragment实现导航栏滑动切换不同内容

我对这三个组件的理解我对这三个组件的理解 最终要实现的效果是可以通过屏幕的左右滑动,切换导航栏,同时也能点击导航栏切换不同的页面。截图: 我的理解:Tablayout组件就是顶部导航栏的部分,ViewPager是页面中除了导航栏以外的部分,即展示内容的部分,而Fragment(碎片)就是来处理这部分数据填充的工具,换言之就是用fragment来设置每个标签下显示的内容是什么。 实现过程 看...

ThereIsNoCode 6831

SCADA|RESTful学习,Apipost通过GET获取KingSCADA实时数据

本文介绍了如何使用RESTful实现SCADA与MES系统对接。主要包括:1)对比RESTful与其他协议的性能指标;2)KingSCADA作为Server/Client的三种应用场景;3)详细演示KingSCADA3.8作为Server端的配置过程,包括端口设置和API测试。通过Apipost工具测试获取变量值及数据回写接口,其中数据回写需使用MD5加密密码。文章最后指出回写测试失败的情况,但未分析具体原因。全文以实际工程应用为导向,提供了具体操作步骤和技术细节。

做有价值的事,积累有价值的笔记! 621

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android TabLayout+Fragment+ViewPager实现顶部导航栏和滑动切换效果

【代码】Android TabLayout+Fragment+ViewPager实现顶部导航栏和滑动切换效果。

qq_19688207的博客 322

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

昨夜西风凋碧树,独上高楼,望尽天涯路。 今天难得有时间,准备写一写我们在APP中经常用到的页面形式,废话不多说,直接一张图看看页面效果你就知道为啥是常用的页面形式。先看看逻辑和最后的效果是怎么样的: 底部导航栏的实现:底部用Linearlayout放控件以供点击,点击相应的功能就动态加载相应的Fragment。 滑动的实现:首先要有一个Fragment的List,然后编写viewpager的Adapter并绑定,最后不要忘了绑定TabLayout和Viewpager。 图1:HomeFragme.

cj19960617的博客 2226

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Android入门到项目实战-- 11.3】—— 实现可左右滑动切换页面的导航栏(ViewPager+TabLayout+Fragment)

Android如何实现可左右滑动的导航栏,使用ViewPager+TabLayout+Fragment实现,在导航栏页面里加入左右滑动的导航栏。

个人博客 2556

Android 用 TabLayout + ViewPager + Fragment 实现顶部、底部导航栏

这是我们 Material Design 系列的第四篇分享了,对 Material Design 还不是太清楚的可以先过前几篇大概的了解一下,今天我们主要通过实现顶部和底部导航栏的功能来了解又一个 Material Design 的控件 TabLayout 的使用,在移动应用开发中,由于屏膜大小的限制,使得顶部、底部 Tab 导航栏的使用非常的广泛,相信大家在实际开发过程中也是经常遇到,以前可以通

QDJdeveloper 6554

AndroidAPP顶部导航栏Tab点击和左右滑动实现切换界面

  APP市场中大多数资讯App都有导航菜单,导航菜单是一组标签的集合,在新闻APP中,每个标签标示一个类别,对应下面ViewPager控件的一个分页面。 随着版本迭代的更新,带来了许多控件,案例主要用到了TabLayout,ViewPage,RecyclerView,CardView等新控件。 效果如图:   以前的实现方法是 :ViewPagerIndicator + Fra...

切切歆语 8210

使用FragmentTabHost实现仿QQ的切换,并在里面嵌套TabLayout+ViewPager的滑动切换

本篇文章要实现的功能是在界面的底部放置一个FragmentTabHost实现类似QQ底部切换栏的功能,切换的内容用Fragment填充,然后再Fragment的里面再放入TabLayout和ViewPager,实现滑动切换的效果。 这里只需要一个Activity,我就放在MainActivity里面,直接上布局代码 <LinearLayout android:orientati

qq_34949557的博客 525

TabLayout实现顶部标题栏和底部导航栏,TrustyGridSimpleAdapter实现按日分类图片

一、TabLayout+ViewPager+Fragment实现顶部的滑动标题栏 ①activity页面布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" andr

顾_小白的博客 1528

结合TabLayout 、ViewPager 、 Fragment 实现顶部导航栏,最实用!!!

说明:因为我习惯实用DataBinding,所以本文使用了DataBinding 的知识,如果对 DataBinding 还没有一点了解的强烈建议大家一定先去了解一下 DataBinding 相关的知识Android DataBinding 详解)。 下面我们开始一步步来实现: 1.首先我们先来创建所需要的 Fragement 以及相对应的布局文件,这里我们拿首页 HomeFr

伍新的博客 2154

TabLayout实现滑动导航栏

目前在做的这个项目中,用到了滑动导航栏, 参考的开源中国APP,使用的是开源PagerSlidingTabStrip+ViewPager实现的。 然后今天刚巧看了一篇文章 http://blog.youkuaiyun.com/tyk0910/article/details/51395064 同样的效果,这篇文章是通过官方在Android Design Support Library中提供的TabLayo

奋斗的码农 4779

Android Material Design之TabLayout + NavigationView联合使用

这是写的第二篇关于Android Material Design的文章,第一篇着重讲了CoordinatorLayout (协调容器)和CollapsingToolbarLayout (可折叠式布局)的基本应用。这一篇我们来看一看如何用TabLayout + NavigationView来仿照网易新闻等的导航栏。先看看实现效果:侧边导航的效果是:嘿嘿,大爱琅琊榜。项目涉及到的基本知识: TabLay

happy_horse的博客 3280

Android开发记录(三)ViewPager2和TabLayout绑定

初始化TabLayout,绑定ViewPager2。布局完成后,需要通过代码将各个布局串起来。初始化ViewPager。初始化ToolBar。

wolf0706的专栏 734
上一篇: Android碎片(Fragment)的小秘密
下一篇: Android Material Design NavigationView
小红妹
博客等级 码龄10年 151粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值