fix: 解绑导航改用NavHostFragment方式获取NavController

FragmentContainerView上findNavController(viewId)有兼容性问题,
改为通过supportFragmentManager获取NavHostFragment再取navController。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
dongliang
2026-05-11 13:20:46 +09:30
parent 4024f2519e
commit 939d402d8c

View File

@@ -4,7 +4,7 @@ import android.content.pm.ActivityInfo
import android.os.Bundle import android.os.Bundle
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View import android.view.View
import androidx.navigation.findNavController import androidx.navigation.fragment.NavHostFragment
import androidx.activity.OnBackPressedCallback import androidx.activity.OnBackPressedCallback
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.xiaoqu.watch.R import com.xiaoqu.watch.R
@@ -127,10 +127,11 @@ class MainActivity : AppCompatActivity() {
bluetoothScanManager.stop() bluetoothScanManager.stop()
userPrefs.clear() userPrefs.clear()
try { try {
findNavController(R.id.nav_host_fragment) val navHost = supportFragmentManager
.navigate(R.id.action_global_to_bind) .findFragmentById(R.id.nav_host_fragment) as NavHostFragment
navHost.navController.navigate(R.id.action_global_to_bind)
} catch (e: Exception) { } catch (e: Exception) {
Timber.w(e, "MainActivity: 解绑导航异常") Timber.e(e, "MainActivity: 解绑导航异常")
} }
} }
} }