たくさんの自由帳
Androidのお話
ホーム
記事一覧
タグ一覧
記事検索
このサイトについて
投稿日 : 2024/11/24 | 0 日前
文字数(だいたい) : 487
Android
JetpackCompose
Kotlin
GitHubで開く
Mastodon / Misskey で共有
目次
本題
なおしかた
どうもこんばんわ。 もうすでにIssue Trackerで解決策が書いてありますが
Issue Tracker
Android 12以上と未満で表示が崩れてしまった。
Android 12
AndroidViewにModifier.clipToBoundsをつければ終わり。 ありがとうIssue Tracker。
AndroidView
Modifier.clipToBounds
https://issuetracker.google.com/issues/283147300
@Composable fun ComposeSurfaceView( modifier: Modifier = Modifier, onCreateSurface: (SurfaceHolder) -> Unit, onSizeChanged: (width: Int, height: Int) -> Unit, onDestroySurface: () -> Unit ) { AndroidView( modifier = modifier.clipToBounds(), // Android 11 以前で AndroidView + SurfaceView すると背景が真っ暗になるので必要 factory = { context -> SurfaceView(context).apply { holder.addCallback(object : SurfaceHolder.Callback { override fun surfaceCreated(holder: SurfaceHolder) = onCreateSurface(holder) override fun surfaceChanged(holder: SurfaceHolder, format: Int, width: Int, height: Int) = onSizeChanged(width, height) override fun surfaceDestroyed(holder: SurfaceHolder) = onDestroySurface() }) } } ) }