首页 > 解决方案 > 底部导航视图 Null

问题描述

我正在尝试BottomNavigationView按照这种简单的方法将徽章设置为 a 。

但是,当我初始化 BottomNavigationView 时,我得到:

java.lang.IllegalStateException: view.findViewById(R.id.bottom_navigation_view) must not be null

我正在从片段初始化 BottomNativigationView。我猜这是问题所在,但我无法找出解决方案。

private lateinit var bottomNavigation: BottomNavigationView

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment_home, container, false)

    bottomNavigation = view.findViewById(R.id.bottom_navigation_view)
}

这是为片段设置导航的 Activity 的 BottomNavigationView xml。

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/bottom_navigation_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorWhite"
    app:itemIconTint="@color/navigation_tint"
    app:itemTextColor="@color/navigation_tint"
    app:labelVisibilityMode="labeled"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:menu="@menu/bottom_navigation" />

感觉就像我错过了一些简单的东西,但我不知道是什么。谢谢!

标签: androidkotlinbottomnavigationview

解决方案


您可以通过转换为您的活动类从其片段访问活动activity,然后膨胀视图。

bottomNavigation = (activity as MyActivityName).findViewById(R.id.bottom_navigation_view)

推荐阅读