问题标签 [android-bottomappbar]

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 回答
3201 浏览

android - 带有 FragmentContainerView 的 Null NavHostFragment/NavController

预期的

使用 Navigation UI 创建底部应用栏导航BottomNavigationViewFragmentContainerView类似于示例应用NavigationAdavancedSample

请注意,NavigationAndvancedSample应用程序似乎没有使用文档中描述的相同实现,因为它具有使用自定义扩展方法的解决方法实现setupWithNavController

观察到的

NavHostFragment在MainActivity.ktBottomNavigationView中使用. _FragmentContainerView

BottomNavigationViewSample存储库中提供了可重现的错误和完整的代码示例。

错误

2020-05-15 12:39:19.117 18747-18747/com.example.bottomnavigationviewsample E/AndroidRuntime:致命异常:主进程:com.example.bottomnavigationviewsample,PID:18747 java.lang.RuntimeException:无法启动活动 ComponentInfo{ com.example.bottomnavigationviewsample/com.example.bottomnavigationviewsample.MainActivity}:kotlin.TypeCastException:null 不能转换为非 null 类型 androidx.navigation.fragment.NavHostFragment 83) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java :2016) 在 android.os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java .lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 930) 2020-05-15 12:39:19.132 18747-18747/com.example.bottomnavigationviewsample I/Process:发送信号。PID:18747 SIG:9 app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 在 android .os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect。 Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 2020-05 -15 12:39:19.132 18747-18747/com.example.bottomnavigationviewsample I/Process:发送信号。PID:18747 SIG:9 app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 在 android .os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect。 Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 2020-05 -15 12:39:19.132 18747-18747/com.example.bottomnavigationviewsample I/Process:发送信号。PID:18747 SIG:9 TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler .dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke( Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 2020-05-15 12: 39:19.132 18747-18747/com.example.bottomnavigationviewsample I/Process:发送信号。PID:18747 SIG:9 TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler .dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke( Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 2020-05-15 12: 39:19.132 18747-18747/com.example.bottomnavigationviewsample I/Process:发送信号。PID:18747 SIG:9 135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 在 android.os.Handler.dispatchMessage(Handler.java:107 ) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android。 internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 2020-05-15 12:39:19.132 18747-18747/com .example.bottomnavigationviewsample I/Process:发送信号。PID:18747 SIG:9 135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 在 android.os.Handler.dispatchMessage(Handler.java:107 ) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android。 internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 2020-05-15 12:39:19.132 18747-18747/com .example.bottomnavigationviewsample I/Process:发送信号。PID:18747 SIG:9 ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main (ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 在 com.android.internal.os .ZygoteInit.main(ZygoteInit.java:930) 2020-05-15 12:39:19.132 18747-18747/com.example.bottomnavigationviewsample I/Process:发送信号。PID:18747 SIG:9 ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main (ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 在 com.android.internal.os .ZygoteInit.main(ZygoteInit.java:930) 2020-05-15 12:39:19.132 18747-18747/com.example.bottomnavigationviewsample I/Process:发送信号。PID:18747 SIG:9 第 7356 章ZygoteInit.java:930) 2020-05-15 12:39:19.132 18747-18747/com.example.bottomnavigationviewsample I/Process:发送信号。PID:18747 SIG:9 第 7356 章ZygoteInit.java:930) 2020-05-15 12:39:19.132 18747-18747/com.example.bottomnavigationviewsample I/Process:发送信号。PID:18747 SIG:9

执行

  1. 为第一个视图home.xml创建一个导航图,以显示在BottomNavigationViewapp > res > navigation下。

    一个。当提示添加项目依赖项时,选择确定

    湾。添加kotlinOptions { jvmTarget = '1.8' }build.gradle (:someAppModule)以启用AppBarConfiguration.

    C。将片段添加到home.xml以显示在BottomNavigationView.

主页.xml

构建.gradle

  1. app > res > menuBottomNavigationView下为bottom_nav.xml创建一个菜单。

    一个。id为菜单和.添加字符串值title

    湾。为菜单添加矢量可绘制对象icon

bottom_nav.xml

  1. FragmentContainerView将and添加BottomNavigationViewMainActivity.ktactivity_main.xml布局中。

activity_main.xml

  1. BottomNavigationViewMainActivity.kt中启用。

    一个。创建AppBarConfiguration. 请参阅:使用 NaviationUI > AppBarConfiguration更新 UI 组件

    湾。创建NavHostFragmentNavController请参阅:使用 findNavController 的 FragmentContainerView的 StackOverflow 解决方案

    C。设置操作栏导航。

    d。设置BottomNavigationView导航。请参阅:使用 NavigationUI 更新 UI 组件 >底部导航

MainActivity.kt

尝试的解决方案

  1. 按照文档中的说明创建NavControllerwith 。findNavController(R.id.nav_host_container)

  2. 实现fragment视图而不是FragmentContainerViewactivity_main.xml中。

activity_main.xml

0 投票
1 回答
1035 浏览

android - Android:使用圆形锚定 FAB 向 BottomAppBar 添加圆角

我想实现与此视图类似的东西,底部导航,左上角和右上圆角半径以及 a 和锚定 FAB在此处输入图像描述

0 投票
1 回答
368 浏览

xml - 如何创建 Material Bottom App Bar 顶部阴影

我正在尝试使用 com.google.material 库创建一个底部应用栏并成功创建,但问题出在 Bar Shadow 形状的顶部或海拔不适用。我搜索了过去 2 天,但没有找到任何关于我的问题的解决方案。我还会附上一张我想要底部应用栏设计的图片。请帮我解决在此处输入图像描述这个问题,我是android开发的新手。

`

这是我的布局代码`

0 投票
1 回答
221 浏览

android - 锚定到BottomAppBar的FloatingActionButton在应用程序恢复时消失

我的 xml 文件:

使用此 xml,当我通过单击主页按钮暂停应用程序并再次恢复应用程序时,FloatingActionButton 会消失。但是,当 MotionLayout 过程完成时,FloatingActionButton 将再次可见。

完成意味着进程达到0.0或1.0

另外,我认为问题可能出在应用程序主题上。所以,这是我在 styles.xml 中的应用程序主题:

我使用 Bridge 是因为我在开发阶段的中间更改了应用程序主题。我不知道为什么会出现这种行为。有没有人面临这样的情况?我的错误是什么?

谢谢您的回答...

0 投票
3 回答
2432 浏览

android - 带有圆形按钮的Android底部导航

我想在我的 android 应用程序中做这样的事情。我尝试使用应用栏和 fab 按钮,但没有成功。你有什么想法?

底部导航

0 投票
1 回答
1224 浏览

flutter - 如何在底部应用栏添加多行

我可以在颤动中修改bottomappbar看起来像这样还是应该使用容器来拥有多个这样的按钮..

在此处输入图像描述

我已经尝试使用 bootomappbar 但我不知道如何拥有多行。

0 投票
1 回答
86 浏览

android - 如何为 Toolbar 和 BottomAppBar 充气两个不同的菜单

以下导致模拟器中的安装后崩溃。没有显示调试信息。

看起来网站认为我的帖子主要是代码。看起来网站认为我的帖子主要是代码。看起来网站认为我的帖子主要是代码。

0 投票
1 回答
1774 浏览

android - 如何更改底部应用栏项目颜色?

我有一个BottomAppBar来自新材料设计的FAB。它BottomAppBar有一个特定的菜单,其中包含 2 个项目和一个导航图标。问题是,我将底部应用栏颜色设置为白色,图标也是白色。我怎样才能改变这个?这是我的activity_layout

这是我的styles.xml

这是底部应用栏的图像(带有白色的图标...): 在此处输入图像描述

0 投票
2 回答
581 浏览

android - 如何使用自定义形状的 fab 按钮制作底部栏?

我想制作一个带有附加工厂按钮的底部栏,如下图所示。如果有人知道那种底部带有晶圆厂的不同形状的按钮库,那么请向我推荐。

下面给出的图像用这样的工厂制作一个底栏。

在此处输入图像描述

0 投票
1 回答
226 浏览

android - Android TabLayout 与 Viewpager 内部 CoordinateLayout 与 BottomAppBar

我在 CoordinatorLayout 内使用 TabLayout 和 ViewPager。在这里,我还有一个带有 FAB 的 BottomAppBar。下面是布局图。

MainActivity 布局

这是我用于此布局的 xml 代码。

但问题是,在选项卡(或片段)之间滑动不起作用。如果我像下面这样编写 xml 代码,则滑动可以正常工作。

我不明白我需要做哪些改变。任何类型的解决方案或建议将不胜感激。提前致谢。