잡동사니

반응형

질문

내 응용 프로그램에서 하단 탭을 표시하고이 탭을 클릭하면 하나의 조각 이 표시됩니다.
이를 위해 쇼 조각에 BottomNavigationView NavigationUI component를 사용했습니다.

내 XML 코드 :

<fragment
        android:id="@+id/homePage_fragmentNavHost"
        android:name="androidx.navigation.fragment.NavHostFragment"
        app:navGraph="@navigation/home_navigator"
        app:defaultNavHost="true"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintBottom_toTopOf="@+id/homePage_bottomNavBar"
        app:layout_constraintTop_toBottomOf="@+id/homePage_toolbar"/>
<!--Bottom menu-->
<com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/homePage_bottomNavBar"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        android:background="?android:attr/windowBackground"
        app:menu="@menu/menu_home_navigation"
        app:labelVisibilityMode="selected"
        app:itemTextAppearanceActive="@style/BottomNavigationView.Active"
        app:itemTextAppearanceInactive="@style/BottomNavigationView"
        app:itemTextColor="@color/bottom_nav_bar_colors"
        app:itemIconTint="@color/bottom_nav_bar_colors"/>

그리고 connect NavigationUi BottomNavigationView 에 대해 코드 아래 를 작성합니다.

private fun setupNavigation() {
    val navController = Navigation.findNavController(this, R.id.homePage_fragmentNavHost)
    NavigationUI.setupWithNavController(homePage_bottomNavBar, navController)
}

override fun onSupportNavigateUp() = Navigation.findNavController(this, R.id.homePage_fragmentNavHost).navigateUp()

그러나 기본 탭에는 항상 항목 0을 표시합니다.

쓰기 조건을 원하고 하나의 값을 확인하고이 NavigationUi BottomNavigationView 에 대해 기본 탭 을 설정합니다.

내가 어떻게 해?


답변1

그래프 에서 startDestination 을 정의 할 수 있습니다.
다음과 같은 것 :

    val navHostFragment = supportFragmentManager.findFragmentById(R.id.homePage_fragmentNavHost) as NavHostFragment
    val graphInflater = navHostFragment.navController.navInflater
    val navGraph = graphInflater.inflate(R.navigation.home_navigator)
    navGraph.startDestination = R.id.nav_xxxxx
    navController.graph = navGraph
            

    findViewById<BottomNavigationView>(R.id.homePage_bottomNavBar)
        .setupWithNavController(navController)


 

 

 

 

출처 : https://stackoverflow.com/questions/62911255/how-to-change-dynamically-default-tab-in-navigationui-component-on-android

반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band