前回に引き続いて。
left, rightがstart, endに
レイアウトのleft
, right
が start
, end
になりました。なるだろうなーと思ってたので想定どおり。
before
LayoutPadding( top = 16.dp left = 8.dp, right = 8.dp, bottom = 16.dp )
after
LayoutPadding( top = 16.dp start = 8.dp, end = 8.dp, bottom = 16.dp )
DrawImageを廃止
Image
を描画するDrawImageがなくなりました。代わりにSimpleImage
を使います。このあたりは今後も色々と変わりそうですね。
before
Container( width = 100.dp, height = 200.dp ) { DrawImage(image) }
after
Container( width = 100.dp, height = 200.dp ) { SimpleImage(image) }
androidx.compose.Contextを廃止
ContextAmbientはandroidx.compose.Context
を返してましたが、androidx.compose.Context
になりました。
before
import androidx.compose.Context
after
import android.content.Context
AppBarIconを廃止
TopAppBarのnavigationIconに使うAppBarIconがなくなり、代わりにIconButtonを使う形になりました。
before
TopAppBar( title = { Text(context.getString(R.string.app_name)) }, navigationIcon = { AppBarIcon( icon = ImagePainter(BitmapImage(context.getBitmap(R.drawable.ic_baseline_arrow_back_24))), onClick = { backStack.pop() } ) } )
IconButtonを使う場合のほうが冗長ですが、children: @Composable() () -> Unit
を受け取るのでより柔軟な表現が可能になってます(例えばTextを渡してもちゃんと動く)。
after
TopAppBar( title = { Text(context.getString(R.string.app_name)) }, navigationIcon = { IconButton( onClick = { backStack.pop() } ) { SimpleImage( BitmapImage(context.getBitmap(R.drawable.ic_baseline_arrow_back_24)) ) } } )
ArrangementにVertical, Hotizontalの概念を追加
Column, RowともにArrangement
が設定できますが、寄せる方向の設定がStart
, End
という名前でした。なので次のように同じ値でもColumnかRowかで意味が異なります。
before
Column( modifier = LayoutWidth.Fill, arrangement = Arrangement.End // 下寄せ ) { Row( modifier = LayoutWidth.Fill, arrangement = Arrangement.End // 右寄せ ) { // something } }
ArrangementにVertical, Hotizontalの概念を追加し、使える値を増やしつつ制限をかけています。これにより意味を理解しやすくなりました。
after
Column( modifier = LayoutWidth.Fill, arrangement = Arrangement.Bottom // Arrangement.Endは使えない ) { Row( modifier = LayoutWidth.Fill, arrangement = Arrangement.End ) { // something } }
おわりに
今までは1ヶ月に1リリースという感じでしたが、2月は2回ありました。I/Oに向けてガガガッとスパートかけてる感じなんでしょうか。楽しみですね。