Flutter自定义tabbar任意样式

这篇具有很好参考价值的文章主要介绍了Flutter自定义tabbar任意样式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Flutter自定义tabbar任意样式,flutter,前端,tabbarFlutter自定义tabbar任意样式,flutter,前端,tabbar

Flutter自定义tabbar任意样式,flutter,前端,tabbar

场景描述

最近在使用遇到几组需要自定义的tabbar或者类似组件,在百度查询资料中通常,需要自定义

TabIndicator extends Decoration

比如上图中的带圆角的指示器这样实现Flutter自定义tabbar任意样式,flutter,前端,tabbar

就很麻烦, 搜出来的相关也是在此之处上自己画,主要再遇到一个稍微特殊的,比如带背景切换的,带特殊图形或者path的,费事费力。

有经验同学可能就会相当那我干脆直接用radiogroup做单选然后去关联page切换。但再劳神之前,

不如点进去tabbar看一下,flutter精髓之一就是万物皆为widget,局部子的自定义正式优势所在, 

 思路描述

  /// The length of this list must match the [controller]'s [TabController.length]
  /// and the length of the [TabBarView.children] list.
  final List<Widget> tabs;

很明显这个是可以随意自定义的,

我们先定义好 两种切换状态的Widget

getAllTabs() {
      return <Tab>[
        for (int i = 0; i < controller.tabs.length; i++)
          Tab(
            child: Stack(
              children: [
                ImageUtils.assetImage(
                    isSelect
                        ? "bg_data_tab_select"
                        : "bg_data_tab_unselect",
                    width: 72.w,
                    height: 34.w,
                    fit: BoxFit.cover),
                // 这个是我自定义背景 文字widget 你可以使用普通text
                UIText(
                  widgetWidth: 72.w,
                  widgetHeight: 34.w,
                  fontWeight: FontWeight.w500,
                  text: controller.tabs[i],
                  fontSize: 18.w,
                  textAlign: TextAlign.center,
                  widgetAlignment: Alignment.center,
                  fontColor: isSelect
                      ? const Color(0xFF202437)
                      : Colors.white,
                  letterSpacing: -0.04,
                )
              ],
            ),
          ),
      ];

此时我们只需要得到isSelect值,改变的时候动态去刷新state即可 将前面的isSelect 改为controller.tabIndex =i即可文章来源地址https://www.toymoban.com/news/detail-833773.html

  TabBar(
                      onTap: (index) {
                        // 赋值
                        controller.tabIndex = index;
                        // 封装的刷新 一般对应setState
                        controller.update();
},

到了这里,关于Flutter自定义tabbar任意样式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • flutter:BottomNavigationBar和TabBar

    BottomNavigationBar r和 TabBar 都是用于创建导航栏的组件,但它们有一些区别。 位置不同: BottomNavigationBar 通常位于屏幕底部,用于主要导航;而 TabBar 通常位于屏幕顶部或底部,用于切换不同的视图或页面。 样式不同: BottomNavigationBar 是一个水平的导航栏,通常包含固定数量的

    2024年02月14日
    浏览(43)
  • flutter TabBar指示器

    第一层tabView 第二层tabView 指示器: // Copyright 2018 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import ‘package:flutter/material.dart’; import ‘package:flutter/widgets.dart’; /// Used with [TabBar.indicator] to draw a horizontal line be

    2024年02月04日
    浏览(45)
  • Flutter-TabBar的使用说明

    TabBar的使用需要结合AppBar,现在给出AppBar的使用说明地址:AppBar的使用说明 TabBar的定义 TabBar在使用之前,首先需要熟悉他的定义属性,现在查看常用定义属性: const TabBar({ Key key, @required this.tabs,//必须实现的,设置需要展示的tabs,最少需要两个 this.controller, this.isScrollable =

    2024年04月26日
    浏览(38)
  • Flutter 实现任意控件拖动

    使用flutter开发是需要控件能拖动,比如画板中的元素,或者工具条,搜索框,每个都单独去实现拖动还是比较麻烦的,将拖动功能封装成一个控件,需要的时候直接使用拖动控件作为父控件这样就方便很多了。 使用translate变换位置即可 这一步不是必须的,但是如果需要限制

    2024年02月15日
    浏览(42)
  • Flutter组件--TabBar使用详情(分段控制器)

      一个显示水平行选项卡的 Widget 。 通常创建为  AppBar  的  AppBar.bottom  部分并与  TabBarView  结合使用 在什么情况下使用TabBar 当你的app内容类别比较多的时候,我们常常会用到 TabBar ,例如网易新闻、京东、B站等,所以TabBar是一个使用非常频繁的组件。 步骤一:创建TabC

    2024年02月02日
    浏览(45)
  • uniApp开发小程序自定义tabBar底部导航栏+tabBar中间凸起自定义样式实现

            先看效果是否可以满足你们,如果可以满足你只要一步一步照着做绝对没有错。         本人技术不佳,研究了一整天,全网的大佬们写的博客看的晕头转向,避免大伙再走弯路,跟着我以下步骤一点一点来绝对可以实现。         最终效果图: (如果你

    2024年02月04日
    浏览(50)
  • 微信小程序自定义tabbar【中间凸起样式】

    效果预览 微信开发文档:自定义tabBar 一、配置信息 在 app.json 中的 tabBar 中指定 custom 字段为 true【允许使用自定义 tabBar】 在所有 tab 页 json 中申明usingComponents 项,或者在 app.json 中全局开启 在 list 中指定自己需要 tab 示例 二、添加 tabBar 代码文件 在代码根目录下添加custom-

    2024年02月10日
    浏览(45)
  • Flutter 鼠标样式、MouseRegion组件

    Flutter中可以通过使用  MouseRegion 组件 来更改鼠标光标样式。 MouseRegion 可以接收一个 cursor 参数,用于指定要使用的光标类型 目录 效果:鼠标移入显示为手指 MouseRegion 组件 鼠标光标类型 示例代码 MouseRegion 是一个用于响应鼠标事件并可以显示鼠标光标的组件,以下常用属性

    2024年02月17日
    浏览(27)
  • 微信小程序自定义tabbar导航栏,中间凸出样式

    这种样式的底部导航栏 使用微信小程序的自定义tabBar:微信小程序官方说明 uni.app=在  page.json   中的  tabBar  项指定  custom   字段为true: 在根目录创建custom-tab-bar目录, 注意一定要完全匹配,不要输错 :  index.js代码: 注意这里的中间需要凸出项设置一个class index.json代码

    2024年02月09日
    浏览(44)
  • 详细介绍uniapp小程序自定义底部tabbar样式的方法

    uniapp自带的tabbar组件可以方便地实现底部导航栏的功能,原生tabBar是相对固定的配置方式,但是默认的样式可能无法满足我们的需求,所以我们需要自定义设置tabbar样式。下面我会详细介绍uniapp自定义tabbar样式的方法。 一、pages.json代码 pages.json这里只配置页面路径就可以。

    2024年02月02日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包