问题标签 [android-bottom-nav-view]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4823 浏览

android - BottomNavigationView 的等间距菜单项

我正在使用BottomNavigationView(从现在开始使用 BNV)在片段之间切换,但我找不到 XML 属性或只是让所有项目(图像)等间距的方法,以便它们填充所有设备中的整个宽度。

我的 XML 用于包含 BNV 的活动(请原谅不好的颜色,这只是为了让它更清楚):

菜单项:

整个活动在手机上看起来是这样的:

在此处输入图像描述

在平板电脑上像这样:

在此处输入图像描述

希望有人可以帮助我。

编辑:感谢用户@GoRoS 解决了 BNV 左右边缘有空格的问题。只需添加android:background="@android:color/holo_orange_dark"到BNV即可解决。

0 投票
0 回答
66 浏览

android - Android中键盘上方的电影recyclerview

我有我的自定义 BottomSheetDialogFragment。在此对话框中,我有自定义的 edittext 和 recyclerview。我的目标是在显示时将 reyclerview 移动到键盘上方。这是我的自定义编辑文本代码

我正在使用这样的代码

rootView 是 xml 文件中的主视图。此代码仅第一次运行完美,但当用户关闭键盘然后再次打开时,此代码不起作用。有什么办法可以解决这个问题吗?或者这是一个正确的解决方案?谢谢

0 投票
0 回答
24 浏览

android - 如何创建一个底部导航视图,其中一个视图项始终突出显示,无论它是否被选中

图片

中间视图项是我需要为我的应用程序开发的我已经尝试使用带有图像和文本视图的布局作为项目但仍然不起作用

0 投票
1 回答
106 浏览

android - 在不同包中的活动之间导航

在不同包中的活动之间实现底部导航的最佳方法是什么?包以自上而下的方式相互导入。

设置

我将我的项目构建为一组包;基本上分为 main app,一些中间PACKAGEs 和 finalend包:

  • app- 提供主应用程序并作为项目构建目标。它包含一个活动,Main,为应用程序提供主要入口点。导航图只是将唯一的片段映射到ACTIVITY每个导入PACKAGE的 ' 提供的 ' 上。
  • PACKAGE- 提供单个活动 ,ACTIVITY来管理专用任务。导航图管理支持活动的各个片段之间的关系;此外,它还包括指向Finalend.
  • end- 提供单个活动 ,Final每次PACKAGE导入它都将其用作其导航图的终止导航链接。

因此,每个包都包含一个活动、一个或多个片段和一个导航图,该导航图管理它们之间的路由,以及一个指向按顺序排列的下一个包中的活动的节点app.Main > PACKAGE.ACTIVITY > end.Final

导航

鉴于这种结构,我想向|Main|...|Final|每个活动添加底部导航,,以便ACTIVITY有一个返回到 的链接Main和另一个向前的链接Final。向前链接Final很容易,因为它已经是每个PACKAGE导航图中的目标,但我不确定链接回的最佳方法Main。同样,我想提供底部导航,|Main|ACTIVITY|...|, 以便Final用户返回到前面的ACTIVITYMain

注意事项

  1. 为父包中的活动提供导航目标的最佳方式是什么?对我来说,以下似乎可行

    1. 交叉导入 gradle 中的所有包。那就是app导入每个PACKAGEand end,每个都PACKAGE导入appand end,然后end导入每个PACKAGEand app。这不是很干,但它将使所有活动都可以普遍访问。
    2. Main作为列表传递给ACTIVITY,以编程方式将其添加到导航菜单。同样将MainandACTIVITY作为列表传递给Final. 在这里我不确定,鉴于活动有生命周期,我是否应该将活动类或其实例传递给子活动?这里的好处是,如果它丢失了,我可以很容易地创建 backstack。
    3. 询问“活动”返回堆栈,因为它已经详细说明了到ACTIVITY(即它包含Main)和Final(即它包含MainACTIVITY)的路由。在这里,事后创建 backstack 变得很棘手。
    4. 使用深度链接?(我还在读这个)
    5. 是否应该简单地交叉引用每个活动设置parentAttribute下的每个<activity/>活动设置以提供必要的导航目标?在这里,我不确定如何最好地将其添加到底部导航图/菜单中?此外,有必要根据到达的路线以编程方式设置。PACKAGESmanifest.xmlparentAttrbiuteFinal
  2. 根据 1 中提供对活动的访问方式,我不确定使此类目标可访问的最佳方法是什么?

    1. 这可以在导航图中完成吗?我可以以编程方式将父包中的活动添加到导航图吗?可以Placeholder用来引用这些项目吗?是否可以编写自定义导航目的地来表示此类项目。
    2. 是否应该简单地填充提供给使用的导航菜单的菜单BottomNavigationView?可以做到这一点并支持导航图提供的目标,即可以覆盖两者OnNavigationItemSelectedLsitenersetupWithNavController一起使用吗?

注意:虽然我看到了一些类似的问题和答案,但我还没有看到任何处理单独包中的活动的问题和答案。

0 投票
2 回答
2503 浏览

android - Android导航组件+登录流程+嵌套BottomNavigationView

我正在努力使用 Android 导航组件构建导航,如下图所示。

我需要一个“登录流程”,检查用户是否登录,然后导航到应用程序的主要部分(也清除后台堆栈)。主要部分包含一个带有三个选项卡的 BottomNavigationView。但是如果我单击工具栏上的设置图标,我还想显示一个全屏 SettingsFragment。

我需要两个带有单独导航图的 NavHostFragment 吗?如果是,我怎样才能将它们结合起来并有一个适当的后退导航?

任何想法如何使用android导航组件实现这样的导航?

在此处输入图像描述

0 投票
1 回答
689 浏览

android - 导航组件:通过底部导航将捆绑包传递到目的地

在我的应用程序中,我有一组视图的主机片段,用户可以通过BottomNavigationView. 这BottomNavigationView是通过连接到我的导航控制器的setupWithNavController

我的主机片段收到一个包含一些信息的包,我希望每个片段在导航到(通过底部导航视图)作为包时接收这些信息。

我目前的解决方案看起来像

虽然这行得通,但它不会很好地扩展,因为我手动为每个目的地添加参数。由于我没有手动导航到每个目的地,而是由BottomNavigationView我不确定如何手动添加此捆绑包完成。

0 投票
1 回答
695 浏览

android - 如何使BottomNavigationView水平方向的图标和标签?

我想点亮图标和BottomNavigationView水平对齐的标签。像这样的东西 在此处输入图像描述

默认方向为

在此处输入图像描述

我应该为菜单项进行自定义布局还是有什么简单的方法?

0 投票
6 回答
113 浏览

android - 与片段一起使用时,“RecyclerView”的初始化方法会使应用程序崩溃

我在我的应用程序上使用了 recyclerView 来显示来自外部存储的所有文件。在我更改它之前,它在“MainActivity.java”中实现时运行良好。

现在,我希望我的应用程序有一个“BottomNavigationBar”;为了做到这一点,我使用片段。问题是当我触摸菜单中的特定项目(包含 RecyclerView 的项目)时应用程序崩溃。

我将所有“this”方法更改为“.getActivity()”,但它还是崩溃了。我将其更改为“.getActivity().getApplicationContext()”,但它仍然崩溃。

对不起,我的电脑不支持硬件加速,所以我无法正确显示错误是什么。相反,我已将调试器连接到我连接的手机并设置断点。"RecyclerView recyclerView = getView().findViewById(R.id.recyclerview);"当应用程序崩溃时,调试器会突出显示该行。

这是片段代码:

[如果您需要更多代码,请告诉我]

我怎样才能解决这个问题 ?

0 投票
0 回答
435 浏览

android - 如何修复出现在底部导航活动下方的片段?

我的主要活动中有一个底部导航活动,这也是我的片段容器。在那个底部导航活动中,我有两个线性布局,其中包含谷歌地图,下面包含实时坐标。

问题是当我点击第二个菜单时,第二个菜单的片段出现在底部导航栏下方,这不是我想要的。

我尝试将布局类型从线性更改为相对,但不起作用。甚至使情况变得更糟。我已经尝试按照有关此的 youtube 教程进行操作,但我的仍然无法按预期工作。

主菜单的代码,它是包含两个项目的片段容器(上面的地图,下面是分屏中的实时坐标,下面是底部导航菜单的代码)

调用片段的代码

按下底部菜单以切换片段时的代码

CheckpointFragment 的代码

ClockingFragment 的代码

仅包含用于测试的占位符文本的第二个菜单的 XML

这是它目前的样子:

图片

占位符文本应替换整个屏幕,而不是出现在底部导航栏下方

我希望第一个屏幕会消失,并且仅在按下第二个底部菜单时显示我为测试它而创建的占位符文本。但实际输出显示占位符文本出现在底部导航菜单下方。

0 投票
1 回答
508 浏览

android - 如何创建像 Material.io 这样的底部导航栏

我一直在尝试将底部导航栏配置为看起来像 material.io,

我检查了https://material.io/develop/android/components/bottom-navigation-view/https://developer.android.com/reference/com/google/android/material/bottomnavigation/BottomNavigationView

我不走运,看起来他们可能不会使用 BottomNavigationView.calss 来创建它

在此处输入图像描述

https://material.io/design/environment/surfaces.html#attributes