横向きモードでレイアウトの作成をプレビューする方法 質問する

横向きモードでレイアウトの作成をプレビューする方法 質問する

Android Studio Bumblebee 2021.1.1 Canary 3 + Compose 1.0-rc02 を使用していますが、リソース フォルダーのリソース (特に寸法) を使用することを含め、プレビューを強制的に横向きモードにする簡単な方法はないようです-land/

を使用すると正しいリソース値が使用されるため、この動作は理論的には可能であることはわかっています@Preview(device = Devices.AUTOMOTIVE_1024p)。ただし、ピクセル密度がデフォルトのプレビュー デバイスと比較してオフになっているため、これは実行可能なプレビュー オプションではありません。(プレビューの幅、高さ、フォント スケールを微調整しても、アイコンのサイズは依然として間違っています。)

次のラッパーを使用して、UIコードが横向きを検出するようにすることができました。

    val lanscapeConfig = LocalConfiguration.current.apply {
        orientation = Configuration.ORIENTATION_LANDSCAPE
    }
    CompositionLocalProvider(LocalConfiguration provides lanscapeConfig) {
        // actual preview code
    }

ただし、これを使用してランドスケープ リソースを取得できないという前述の問題は解決されませんdimensionResource()

何か案は?

ベストアンサー1

2024-01-18 更新

この機能は実装されました:コンポーザブルプレビューで UI をプレビューする#さまざまなデバイスで使用する。 からハビエルの答え:

@Preview(
    showSystemUi = true,
    device = "spec:width=411dp,height=891dp,dpi=420,isRound=false,chinSize=0dp,orientation=landscape"
)

現在の回避策は、横向きプレビュー用に別のファイルを使用して を指定しdevice = Devices.AUTOMOTIVE_1024p、高さと幅を微調整することです (フォント スケールは調整しません)。

しかし、誰かが、異なるデバイスタイプで機能する、より良いアプローチを考え出してくれることを願っています。

@Preview(device = Devices.AUTOMOTIVE_1024p, widthDp = 720, heightDp = 360)
@Composable
fun PreviewLandscape() {
    PreviewHelper() // common preview code to all modes
}

おすすめ記事