问题标签 [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.
android - 带有 FragmentContainerView 的 Null NavHostFragment/NavController
预期的
使用 Navigation UI 创建底部应用栏导航BottomNavigationView
,FragmentContainerView
类似于示例应用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
执行
为第一个视图home.xml创建一个导航图,以显示在
BottomNavigationView
app > res > navigation下。一个。当提示添加项目依赖项时,选择确定。
湾。添加
kotlinOptions { jvmTarget = '1.8' }
到build.gradle (:someAppModule)以启用AppBarConfiguration
.C。将片段添加到home.xml以显示在
BottomNavigationView
.
主页.xml
构建.gradle
在app > res > menu
BottomNavigationView
下为bottom_nav.xml创建一个菜单。一个。
id
为菜单和.添加字符串值title
。湾。为菜单添加矢量可绘制对象
icon
。
bottom_nav.xml
FragmentContainerView
将and添加BottomNavigationView
到MainActivity.kt的activity_main.xml布局中。
activity_main.xml
BottomNavigationView
在MainActivity.kt中启用。一个。创建
AppBarConfiguration
. 请参阅:使用 NaviationUI > AppBarConfiguration更新 UI 组件湾。创建
NavHostFragment
和NavController
。请参阅:使用 findNavController 的 FragmentContainerView的 StackOverflow 解决方案C。设置操作栏导航。
d。设置
BottomNavigationView
导航。请参阅:使用 NavigationUI 更新 UI 组件 >底部导航
MainActivity.kt
尝试的解决方案
按照文档中的说明创建
NavController
with 。findNavController(R.id.nav_host_container)
实现
fragment
视图而不是FragmentContainerView
在activity_main.xml中。
activity_main.xml
android - 锚定到BottomAppBar的FloatingActionButton在应用程序恢复时消失
我的 xml 文件:
使用此 xml,当我通过单击主页按钮暂停应用程序并再次恢复应用程序时,FloatingActionButton 会消失。但是,当 MotionLayout 过程完成时,FloatingActionButton 将再次可见。
完成意味着进程达到0.0或1.0
另外,我认为问题可能出在应用程序主题上。所以,这是我在 styles.xml 中的应用程序主题:
我使用 Bridge 是因为我在开发阶段的中间更改了应用程序主题。我不知道为什么会出现这种行为。有没有人面临这样的情况?我的错误是什么?
谢谢您的回答...
android - 如何为 Toolbar 和 BottomAppBar 充气两个不同的菜单
以下导致模拟器中的安装后崩溃。没有显示调试信息。
看起来网站认为我的帖子主要是代码。看起来网站认为我的帖子主要是代码。看起来网站认为我的帖子主要是代码。
android - Android TabLayout 与 Viewpager 内部 CoordinateLayout 与 BottomAppBar
我在 CoordinatorLayout 内使用 TabLayout 和 ViewPager。在这里,我还有一个带有 FAB 的 BottomAppBar。下面是布局图。
这是我用于此布局的 xml 代码。
但问题是,在选项卡(或片段)之间滑动不起作用。如果我像下面这样编写 xml 代码,则滑动可以正常工作。
我不明白我需要做哪些改变。任何类型的解决方案或建议将不胜感激。提前致谢。