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

View File

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

View File

@ -36,7 +36,7 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/bottom_menu" /> app:menu="@menu/bottom_menu" />
<fragment <androidx.fragment.app.FragmentContainerView
android:id="@+id/fragment" android:id="@+id/fragment"
android:name="androidx.navigation.fragment.NavHostFragment" android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="0dp" android:layout_width="0dp"

View File

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