使用我们的actionbar实现我们的tab导航功能(详解)

2023-11-20

第一步的话就是创建我们对应的fragment:
这里的话我们创建了三个对应的fragment:

在这里插入图片描述
第二步的话就是创建我们的mytablistener类:
在这里插入图片描述

package com.example.handle.Fragments;

import android.app.Activity;

import androidx.appcompat.app.ActionBar;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;

public class MyTabListener implements ActionBar.TabListener {
    // 指定要加载的fragment的Activity
    private final Activity activity;
    // 这个的话就是加载我们的fragment对应的类
    private final Class aClass;
    // 定义一个我们的fragment对象
    private Fragment fragment;

    public MyTabListener(Activity activity, Class aClass) {
        this.activity = activity;
        this.aClass = aClass;
    }

    @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
        // 我们的选项卡被选中,我们的标签被选中是的状态
        if(fragment == null){
           fragment = Fragment.instantiate(activity,aClass.getName()); // 获取我们的类名
           // 将我们要显示的fragment添加到我们的fragmemnt实例当中
            ft.add(android.R.id.content,fragment,null);
        }
        // 显示我们的新的页面
        ft.attach(fragment);
    }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
         // 没有被选中,这个的话就是当我们退出选中状态时
         if(fragment == null){
             ft.detach(fragment); // 删除我们的旧的页面
         }
    }

    @Override
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {

    }
}

然后的话就是编写我们的java文件中的代码实现我们的功能:
在这里插入图片描述

package com.example.handle;

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;

import android.os.Bundle;

import com.example.handle.Fragments.MyTabListener;

public class ActionBar_and_tab extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_action_bar_and_tab);
        // 设置我们的actionbar为我们的选项卡模式并将我们的标签页添加到我们的actionbar中
        ActionBar actionBar = getSupportActionBar();  // 获取actionbar对象
        // 设置我们的actionbar采用我们的选项卡模式
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // 设置actionbar采用选项卡模式
        actionBar.setDisplayOptions(0,ActionBar.DISPLAY_SHOW_TITLE); // 隐藏我们的标题栏
        // 把我们的表签页添加到我们的actionbar中
        actionBar.addTab(actionBar.newTab().setText("词典")
                .setTabListener(new MyTabListener(this, Fragment.class)));   // 添加的是我们的第一个标签页
        actionBar.addTab(actionBar.newTab().setText("百度")
                .setTabListener(new MyTabListener(this, Fragment.class)));   // 添加的是我们的第一个标签页
        actionBar.addTab(actionBar.newTab().setText("书籍")
                .setTabListener(new MyTabListener(this, Fragment.class)));   // 添加的是我们的第一个标签页
    }
}

然后的话来看看我们的代码的运行效果:
在这里插入图片描述
其实的话实现我们的tab导航栏还有更多的办法,我们使用的办法是相对落后了:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用我们的actionbar实现我们的tab导航功能(详解) 的相关文章

随机推荐

  • Freertos 在contexM0芯片上的移植

    1 freertos源码 官网下载地址 https www freertos org 下载LTS长期支持版本 2 在工程目录下新建FreeRTOS文件夹 将FreeRTOS 的源码添加到这个文件夹中 portable 文件夹中只需要复制 k
  • shared_ptr使用场景、陷阱、性能分析,使用建议

    1 std shared ptr使用场景 include
  • 【leetcode】1.两数之和

    力扣原题传送门 https leetcode cn problems two sum 目录 题解 代码链接 题解 class Solution public vector
  • 隐藏通知内容什么意思_原来华为手机隐藏5个技巧,难怪别人都说华为好用,涨知识了...

    阅读本文前 请您先点击上面
  • Kinect开发学习笔记之(追加)深度距离误差分析

    由于最近要研究kinect采集到的深度信息的一些统计特征 所以必须先对kinect深度信息做进一步的了解 这些了解包括kinect的深度值精度 深度值的具体代表的距离是指哪个距离以及kinect深度和颜色扫描范围等 经过查找资料可以解决这些
  • 开启电脑ssl协议的方法

    转自 微点阅读 https www weidianyuedu com 电脑ssl协议怎么开启 开启ssl协议的方法是什么 经近期实际操作了解到开启ssl协议一共需要6个步骤 很快即可完成 以下是开启电脑ssl协议的方法介绍 1 首先打开浏览
  • html src 参数,HTTP参数解析

    本文概述 在本节中 我们将讨论各种HTTP参数及其语法 例如 日期和时间格式 字符集等 这些参数用于在编写客户端或服务器的HTTP程序时构造请求和响应消息 HTTP的各种参数如下 HTTP版本 为了指示协议的版本 HTTP使用 编号方案 协
  • 办公网络上网行为管理规划

    办公网络上网行为管理规划是确保办公网络资源的合理利用和保障网络安全的重要措施 下面是办公网络上网行为管理规划的一般性步骤和原则 确立政策和准则 制定明确的上网行为管理政策和准则 明确员工在办公网络上的合规要求和行为规范 包括规定员工上网内容
  • 项目设计:基于YOLO目标检测算法的安全帽/口罩/汽车/行人/交通标志...检测

    本文将详细介绍YOLO目标检测算法 该算法支持各种目标检测 包括 安全帽 汽车 造价 交通标志 等 其他毕业设计题目推荐参考 毕业设计 电子 通信 计算机 物联网专业毕业设计选题参考 嵌入式linux 单片机STM32 web 图像 htt
  • 数据库难点知识

    索引 当表中有大量记录时 若要对表进行查询 第一种搜索信息方式是全表搜索 是将所有记录一一取出 和查询条件进行一一对比 然后返回满足条件的记录 这样做会消耗大量数据库系统时间 并造成大量磁盘I O操作 第二种就是在表中建立索引 然后在索引中
  • matlab通用操作界面窗口包括哪些,matlab作业题

    第一章 MATLAB环境 1 MATLAB通用操作界面窗口包括哪些 命令窗口 历史命令窗口 当前目录窗口 工作空间窗口各有哪些功能 答 MATLAB通用操作界面窗口包括 命令窗口 历史命令窗口 当前目录浏览器窗口 工作空间窗口 变量编辑器窗
  • 前端的工程化、模块化和组件化

    什么是工程化 工程化是一种思想而不是某种特定的技术 当然我们在实现项目工程化的过程中 我们也会去使用一些技术 前端工程化是使用软件工程的技术和方法来对前端的开发流程 技术 工具等进行规范化 标准化 其主要目的为了提高效率和降低成本 即提高开
  • 使用Class.forName 自动完成注册驱动,简化代码 但是 “//” 是使用最多的

    方式1 public void connect05 throws IOException ClassNotFoundException SQLException 通过properties对象获取文件信息 Properties propert
  • Python爬虫突破封禁的6种常见方法

    在互联网上进行自动数据采集 抓取 这件事和互联网存在的时间差不多一样长 今天大众好像更倾向于用 网络数据采集 有时会把网络数据采集程序称为网络机器人 bots 最常用的方法是写一个自动化程序向网络服务器请求数据 通常是用 HTML 表单或其
  • select2 获取选中的值

    获取选中的名 var cardTypeW cardType option checked text 获取选中的值 写法1 var cardTypeW cardType option checked val 写法2 var cardTypeW
  • js逆向-某旗小说

    声明 本文仅供学习参考 请勿用于他途 违者后果自负 前言 笔者一直是一个小说控 喜欢看小说很多年了 自从学会了python后 就经常会去不同的小说网站抓取小说保存到本地阅读 最近发现一本很好看的小说 准备抓下来看 却发现有请求参数和返回的接
  • webpack的构建流程

    一 运行流程 webpack 的运行流程是一个串行的过程 它的工作流程就是将各个插件串联起来 在运行过程中会广播事件 插件只需要监听它所关心的事件 就能加入到这条webpack机制中 去改变webpack的运作 使得整个系统扩展性良好 从启
  • opencv生成棋盘格

    头文件 include
  • 前端将List列表转化为树型结构(reduce函数)

    主要用到了reduce 函数 for循环可以做到的事情reduce 都可以做到 甚至操作起来更加简单方便和高雅 reduce 为数组中的每一个元素依次执行回调函数 不包括数组中被删除或从未被赋值的元素 reduce语法 array redu
  • 使用我们的actionbar实现我们的tab导航功能(详解)

    第一步的话就是创建我们对应的fragment 这里的话我们创建了三个对应的fragment 第二步的话就是创建我们的mytablistener类 package com example handle Fragments import and