使用 NavController 时,有没有一种方法可以在风景中使用一个片段而在肖像中使用其他片段?
Is there a way to use one fragment in landscape and others in portrait when using NavController?
我在我的一个片段上使用条形码扫描器,我需要旋转那个片段来扫描条形码。我尝试在我的单曲 activity 中通过 OnDestinationChangedListener 轮换,但它似乎太昂贵了。我怎样才能更好地做到这一点?
您必须实施 ViewModel 才能处理屏幕旋转情况
以下链接可能对您有所帮助
https://developer.android.com/topic/libraries/architecture/viewmodel
是的,您可以在导航到这样的片段时简单地应用片段标志
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activity?.let {
it.window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)
it.window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_FULLSCREEN)
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
}
我在我的一个片段上使用条形码扫描器,我需要旋转那个片段来扫描条形码。我尝试在我的单曲 activity 中通过 OnDestinationChangedListener 轮换,但它似乎太昂贵了。我怎样才能更好地做到这一点?
您必须实施 ViewModel 才能处理屏幕旋转情况
以下链接可能对您有所帮助
https://developer.android.com/topic/libraries/architecture/viewmodel
是的,您可以在导航到这样的片段时简单地应用片段标志
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activity?.let {
it.window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)
it.window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_FULLSCREEN)
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
}