如何更改特定底部栏导航项的大小和形状

2024-01-03

我正在尝试实现这个底部栏,其中包含一个比其他项目更大尺寸和不同形状的项目。

是否有一种非 hacky 的方法可以使用本机底部导航组件来实现此目的?我想不是,因为它似乎不符合材料设计规范。

否则,最好的方法是什么?我只看到两种方法可以实现这一目标,但对我来说,没有一种方法是可靠的。

  • 对于每个“小项目”,在可绘制的顶部添加一个透明条以达到相机图标的大小。
  • 实现一个包含 5 个项目的底部栏,中间有一个“幽灵项目”,在其顶部我可以放置一些其他组件。这需要该组件与底部栏耦合。

EDIT

这是我按照 Harshit 和 fmaccaroni 的建议通过增加图标大小获得的结果。

当未选择该项目时:

当选择该项目时:

优点:图标比其他图标大

缺点:它仍然包含在底部栏中。此外,选择时它不会垂直居中



<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:layout_alignParentBottom="true"
    android:background="?android:attr/windowBackground"
    app:itemIconTint="@color/colorPrimary"
    app:itemTextColor="@android:color/black"
    app:menu="@menu/navigation"
    android:clipChildren="false">

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="56dp"
        android:layout_height="56dp"
        android:layout_gravity="center"
        android:layout_marginBottom="8dp"
        app:elevation="6dp"
        android:scaleType="center" />
</android.support.design.widget.BottomNavigationView>

还将 android:clipChildren="false" 添加到根布局

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

如何更改特定底部栏导航项的大小和形状 的相关文章

  • 使用 gradle-retrolambda 和 Lightweight-Stream-API 过滤 Android 中的对象列表

    我正在尝试在我的 Android 应用程序中过滤 Java 中的对象列表 为此我遵循这个答案 https stackoverflow com a 13140130 3546389 Java 8建议 但由于Android SDK不支持Lamb
  • Android 上的多处理

    我一直在 Android 上执行一些测试 以验证并行化算法 如 FFT 的性能可以提高多少 我通过使用带有 JNI FFTW 的 pthread 和 Java 线程 来自 JTransforms 来实现这些算法 我没有像预期那样通过使用线程
  • Android Volley:意外响应代码 405

    我的 Android Volley JsonObjectRequest 遇到 onErrorResponse 并出现以下问题 BasicNetwork performRequest Unexpected response code 405
  • 将 React Native 应用程序嵌入到现有的 ios/android 应用程序中

    我需要知道是否可以在现有的 ios android 应用程序中 嵌入 一个 React Native 应用程序 而不共享 React Native 应用程序代码 我们目前有一个 React Native 应用程序 它使用一些插件依赖项 并被
  • 使用 ViewPager 从 Activity 到 Fragment 的通信

    我有一个 Activity 和两个 Fragmentstablayout含有一个viewpager 现在我可以通过实现谷歌的指南回调接口从片段到活动进行通信 但我怎样才能以另一种方式沟通从活动到片段 如果活动中发生了一些事情 外部事件 我想
  • 从txt文件中读取数据而不下载它?

    我想从提供的文本文件中解析信息 有没有一种方法可以在应用程序中执行此操作 而无需先下载文件 以某种方式传输文本内容 打开到 URL 的 Http 连接 使用内置 HttpURLConnection 或使用 commons httpclien
  • 检测Android N版本代码

    是否可以检测用户是否运行 Android N 我有一台装有 Android N 开发者预览版的 Nexus 6 如果我尝试获取构建版本Build VERSION SDK INT 它返回 23 等于 Android Marshmallow Q
  • 从 Android 函数更新 Textview

    有人可以告诉我如何从函数更新 Android Textview 控件吗 我在互联网上进行了深入搜索 看到很多人都问同样的问题 我测试了线程但无法工作 有人有一个简单的工作示例吗 例如 调用一个函数 在循环中运行多次 并且该函数在 TextV
  • 如何将webview内容划分为多个页面

    我必须使用 Android 上的 PdfDocument 从 webView 创建 PDF https developer android com reference android graphics pdf PdfDocument htm
  • 使用audioSessionId值实例化AudioFx类?

    我已经阅读了 Android API 并尝试在互联网上搜索有关声明自定义audioSessionId然后用它audioSessionId初始化 AudioFx 类并为我的 MediaPlayer 或 AudioTrack 分配硬编码audi
  • Android TextView 中的等宽表格数字

    我有一个自定义字体 默认情况下具有可变宽度数字字形 并且我想在 Android 中使用该字体的等宽表格数字功能TextView使数字垂直对齐 也就是说 改变如下 像这样的事情 要选择字体的表格数字功能 请使用TextView s fontF
  • 如何在我的谷歌上嵌入转弯导航

    我想在我的 Android 应用程序中嵌入逐段导航 请给我一个教程或如何执行此操作的想法 提前致谢 如果您不固定使用谷歌地图 您可以使用基于 OpenStreetMap 地图的维基百科版本 的 SDK 有几个不错的 SDK 提供商 skob
  • 标签栏随键盘一起上升

    这个问题之前已经发过 但是没有答案 Problem TabBar gt 2 个选项卡 选项卡一有一个Scrollview and an EddiText 标签二 其他 贴带时EditText 软键盘上升 TabBar与它一起 一个丑陋的解决
  • 如何解决Android错误类型3?

    下面是我在项目中使用的清单格式 但是每当我尝试运行模拟器时 我都会收到下面提到的错误 请给我一个解决该错误的准确解决方案 工具信息 Android studio Nexus S API 22 android 5 1 1 我的清单文件格式
  • 从字符串中删除重音符号

    Android 中有没有什么方法 据我所知 没有 java text Normalizer 可以从字符串中删除任何重音 例如 变成 eau 如果可能的话 我想避免解析字符串来检查每个字符 java text NormalizerAndroi
  • 通知管理器所需的权限

    我正在尝试使用以下命令将振铃器设置为静音且请勿打扰优先级 AudioManager myAudioMgr AudioManager context getSystemService Context AUDIO SERVICE Notific
  • 什么是版本代码主要?和versionCode有什么区别?

    我刚刚发现PackageInfo versionCode https developer android com reference android content pm PackageInfo html versionCode在 Andr
  • 使用 Android O 的“android:fontFamily”时出现错误“文件名必须以 .xml 结尾”?

    Android O 引入了一项新功能 XML 中的字体 它允许您将字体用作资源 我正在创建font资源文件中的文件夹 由安卓开发者 https developer android com preview features working w
  • 调用外部应用程序

    如何从我的应用程序调用外部应用程序 例如 我需要打电话Shazam 应用程序 来自我的应用程序 我可以在应用程序的包名称中看到logcat 这对任何目的都有用吗 特别是对于 Shazam 以下代码有效 Intent intent new I
  • 无法 ACTION_VIEW 外部存储上的文件

    我的 Android 手机的外部存储中有一个文件 在本例中是模拟的 知道通往它的路径和 或拥有File代表它的对象 我如何使用Intent在适当的应用程序中打开它 我尝试的第一件事是 startActivity new Intent Int

随机推荐

  • 如何将 Hive 与 Power BI 连接

    我无法将 Hive 视为 power BI 中列出的数据源 有没有办法将Hive数据库与power bi桌面连接 还有有什么限制吗 应在系统中安装并配置 Hive ODBC 驱动程序 以便与 Power BI 连接 成功配置 ODBC 驱动
  • AngularJS 事件未从 $rootScope 触发

    我遇到了 rootScope broadcast 事件未被触发的问题 App run function rootScope var text Not So Static Now rootScope broadcast event stati
  • 在 Android 中使用经过训练的 Scikit-learn svm 分类器 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在开发一个 Android 应用程序 它使用手机中的传感器数据对活动进行分类 与任何 Java 机器学习库相比 我也更喜欢 sci
  • C#中有“记录”吗?

    我希望将一些客户数据存储在内存中 我认为最好的方法是使用记录数组 我不确定这是否是 C 中的名称 但基本上我可以调用Customer i Name并将客户姓名作为字符串返回 在图灵中 它是这样完成的 type customers recor
  • 将成绩单 .srt 文件解析为可读文本

    我有一个视频脚本 SRT 文件 其中包含传统 SRT 格式的线条 这是一个例子 1 00 00 00 710 gt 00 00 03 220 Lorem ipsum dolor sit amet consectetur adipisicin
  • java.lang.AbstractMethodError:当我尝试使用 nexmo(vonage) API 发起出站语音呼叫时出现此异常

    我的 pom xml 用于所有相关的依赖项 没有其他依赖项在内部使用以下依赖项
  • TypeScript 中除了函数之外还有其他类型吗?

    我想表达的是 参数应该是一个对象或者简单的值类型 数字 布尔值 字符串等 而不是函数 如果我使用Object 编译器让我分配一个函数 var test Object gt a 如果我使用any 当然也是同样的结果 在这种情况下有什么类型或技
  • 从 2 个不同的表以用户或管理员身份登录

    好吧 我想以用户和管理员身份登录 我的用户表称为 sollicitant 我的管理员是 bedrijf 这是荷兰语 哈哈 抱歉 我现在的代码仅适用于 1 个表 但我如何才能有一个在两个表中查找以登录的 sql 查询
  • Stripe 计量计费我应该使用什么?

    我对文档有点困惑 In order for Stripe to compute the number of units consumed during the billing cycle you must report the custom
  • 在神经网络反向传播算法中循环训练数据

    在一个训练周期中我使用训练数据样本多少次 假设我有 60 个训练数据 我遍历第一行并进行前向传递 并使用后向传递的结果调整权重 使用 sigmoidal 函数如下 Forward pass Si sum of Wi Uj Ui f Si 1
  • 如何在 Android 中播放音频文件?

    我有代码可以玩 ogg音频文件 我从互联网上下载的 我没有错误 所以我可以运行它 但应用程序崩溃了 package play my sound import android app Activity import android media
  • Py2App找不到标准模块

    我使用 py2app 创建了一个应用程序 它工作正常 但如果我压缩 解压缩它 新解压缩的版本将无法访问标准 python 模块 如 Traceback 或 os zip 的联机帮助页声称它保留了资源分支 并且我已经看到其他以这种方式打包的应
  • 按钮点击不触发它的方法VB.NET

    您好 我的按钮有问题 当我单击它时 按钮不会触发该方法 Private Sub button1 Click sender As System Object e As System EventArgs Initialize the captu
  • PHP 独特的嵌套数组数组函数

    有没有办法使用 Array unique 函数来处理嵌套数组 如下所示 我想删除日期重复项并将两个日期作为数组取出 Array 0 gt Array value gt 1311044688 name gt 19th Jul 2011 1 g
  • 我可以阻止 std::sort 复制传递的比较对象吗

    我们使用比较器对象对向量进行排序 std vector
  • jQuery:绑定命名空间事件

    如果事件是命名空间 是否可以侦听一个基本事件的所有事件 Example elmt bind change function event console log event elmt trigger change namespace1 elm
  • Opencv:使用 FAST 关键点和 Brief 特征训练 SVM

    我想训练一个用于对象检测的支持向量机 此时 我有一个 python 脚本 可以检测 FAST 关键点并提取该位置的 Brief 特征 现在我不知道如何使用这些描述符来训练 SVM 请你告诉我 如何使用描述符来训练SVM 据我所知这些描述符应
  • 自定义分析器,它会破坏特殊字符和小写/大写的标记

    我正在尝试编写一个自定义分析器 它会破坏特殊字符上的标记 并在索引之前将其转换为大写 如果我也使用小写字母进行搜索 我应该能够获得结果 例如 如果我给出 data source 它应该用空格替换 它应该用空格替换任何特殊字符 并给我像数据源
  • WebPack 2:迁移 preLoaders 和 postLoaders

    我已经安装了 email protected cdn cgi l email protection 之前我用的是 email protected cdn cgi l email protection 在我使用的配置文件上preLoaders
  • 如何更改特定底部栏导航项的大小和形状

    我正在尝试实现这个底部栏 其中包含一个比其他项目更大尺寸和不同形状的项目 是否有一种非 hacky 的方法可以使用本机底部导航组件来实现此目的 我想不是 因为它似乎不符合材料设计规范 否则 最好的方法是什么 我只看到两种方法可以实现这一目标