Android底部导航栏标签切换: ToolBar+TabLayout+ViewPager+Fragment

本文详述如何在Android应用中实现底部导航栏与标签切换,使用ToolBar、TabLayout、ViewPager和Fragment。讲解了每个组件的作用,如TabLayout作为导航,ViewPager实现页面翻页,Fragment作为独立的Activity部分,以及ToolBar作为标题栏。同时,文章涵盖了添加依赖、布局设计、Fragment管理和优化,包括Fragment的生命周期和内存管理。
摘要由CSDN通过智能技术生成

摘要:本文主要讲解Android中常见的导航栏/标签栏的实现,仅供交流学习。


1 效果与分析

效果图如下,一般的手机应用首页就是这种样式,包括手机淘宝、QQ、微信。
这里写图片描述
下面是新版QQ的界面,底部的导航栏实现的是切换Fragment效果,四个标签选项卡。“看点”就是从前的“QQ看点”,这个选项有点特殊,里面内嵌了顶部导航栏,而且数据刷新实现了“懒加载”的效果,也就是我不点击,它就不会更新推送,但只要我切换到这个选项就会自动加载新的推送内容,这就是关于ViewPager+Fragment的一点妙用。懒加载会在 分析模仿QQ看点 的博文中详细讲解。
qq首页

部分控件作用
  1. TabLayout:标签布局,用于新建导航栏。
  2. ViewPager:视图翻页容器,将多个View放在同一个ViewPager,通过左右滑动实现翻页效果。Google推荐使用Fragment+ViewPager的组合,更便于管理生命周期。
  3. Fragment:碎片,可以理解为需要依赖于Activity存在的小型Activity,有自己的生命周期。
  4. ToolBar:工具栏,标题栏。
    想要详细了解这几个控件作用的朋友可以参考下面的文章:
    TabLayout属性
    ToolBar简单实用

2 实现

2.1 添加依赖

使用 TabLayout 需要先添加依赖implementation 'com.android.support:design:26.1.0',ViewPager在v4包里,可以直接使用。

2.2 布局文件

将ToolBar、ViewPager和TabLayout 的位置分配好,新建activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    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.v7.widget.Toolbar
        android:id="@+id/main_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/colorPrimary">

        <TextView
            android:id="@+id/toolbar_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="标题"
            android:textColor="@android:color/white"
            android:textSize="18sp" />
        
    </android.support.v7.widget.Toolbar>


    <android.support.v4.view.ViewPager
        android:id="@+id/main_viewpager"
        android:layout_width
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值