根据Android Compose中的可用宽度/高度显示不同的内容(布局)

lnvxswe2  于 2023-11-15  发布在  Android
关注(0)|答案(2)|浏览(152)

我有一个ActivityMyApp可组合的函数。在函数中,我需要根据可用宽度显示包含详细信息的列表或仅显示列表屏幕。如何使用Jetpack Compose确定我想要显示的内容的可用宽度?使用Compose有什么好的做法?

class MyActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            ProjectTheme {
                MyApp()
            }
        }
    }
}

@Composable
fun MyApp() {
    val isLarge: Boolean = ...// how to determine whether the available width is large enough?
    if (isLarge) {
        ListScreenWithDetails()
    } else {
        ListScreen()
    }
}

@Composable
fun ProjectTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) {
    // ... project theme
}

字符串

fdbelqdn

fdbelqdn1#

您可以用途:

val configuration = LocalConfiguration.current

字符串
然后:

val isLargeWidth = configuration.screenWidthDp > 840

wko9yo5t

wko9yo5t2#

对于一般的解决方案,请考虑使用窗口大小类,请参阅此和此以供参考。

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    setContent {
        val windowSizeClass = calculateWindowSizeClass(this)
        MyApp(windowSizeClass)
    }
}

字符串

相关问题