refactor: migrate to FragmentContainerView (#6957)

This commit is contained in:
Thomas W. 2025-01-16 17:41:13 +01:00 committed by GitHub
parent b2e0701f71
commit 5fd155934f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 12 additions and 17 deletions

View File

@ -24,7 +24,6 @@ import androidx.core.view.isNotEmpty
import androidx.core.widget.NestedScrollView
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController
import androidx.navigation.findNavController
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.onNavDestinationSelected
import androidx.navigation.ui.setupWithNavController
@ -126,7 +125,8 @@ class MainActivity : BaseActivity() {
// set the action bar for the activity
setSupportActionBar(binding.toolbar)
navController = findNavController(R.id.fragment)
val navHostFragment = binding.fragment.getFragment<NavHostFragment>()
navController = navHostFragment.navController
binding.bottomNav.setupWithNavController(navController)
// save start tab fragment id and apply navbar style
@ -153,11 +153,8 @@ class MainActivity : BaseActivity() {
if (it.itemId != navController.currentDestination?.id) {
navigateToBottomSelectedItem(it)
} else {
// get the host fragment containing the current fragment
val navHostFragment =
supportFragmentManager.findFragmentById(R.id.fragment) as? NavHostFragment
// get the current fragment
val fragment = navHostFragment?.childFragmentManager?.fragments?.firstOrNull()
val fragment = navHostFragment.childFragmentManager.fragments.firstOrNull()
tryScrollToTop(fragment?.requireView())
}
}

View File

@ -2,8 +2,6 @@ package com.github.libretube.ui.activities
import android.content.Intent
import android.os.Bundle
import androidx.navigation.findNavController
import com.github.libretube.R
import com.github.libretube.constants.IntentData
import com.github.libretube.databinding.ActivityNointernetBinding
import com.github.libretube.helpers.NavigationHelper
@ -15,9 +13,6 @@ class NoInternetActivity : BaseActivity() {
val binding = ActivityNointernetBinding.inflate(layoutInflater)
setContentView(binding.root)
val navController = findNavController(R.id.fragment)
navController.graph = navController.navInflater.inflate(R.navigation.nav_nointernet)
}
override fun onNewIntent(intent: Intent) {

View File

@ -36,7 +36,7 @@
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/bottom_menu" />
<fragment
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="0dp"
@ -56,4 +56,4 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.motion.widget.MotionLayout>
</androidx.constraintlayout.motion.widget.MotionLayout>

View File

@ -1,19 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="20dp"
android:paddingTop="10dp" />
android:paddingTop="10dp"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_nointernet" />
<FrameLayout
android:id="@+id/container"
android:layout_height="match_parent"
android:layout_width="match_parent" />
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>