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