Closed23

Jetpack Composeに入門するスレ

rmakiyamarmakiyama

Empty Compose Activtyで開始したらMinimum SDKが23じゃないですか… 🚀

rmakiyamarmakiyama

Gradle sync failed: Invalid Gradle JDK configuration found.が出ちゃった

rmakiyamarmakiyama

久しぶりに。いろいろと問題が出てうまくいかなくなっちゃったので、File > Manage IDE Setting > Restore Default Settings...をして解決!

rmakiyamarmakiyama

気になってたテーマ周りはMaterialThemeをベースに構築していく感じなのね、Flutterちらっと触ったときと似ているな

rmakiyamarmakiyama

メモ

Android アプリで MDC ライブラリを使用している場合、MDC Compose Theme Adapter ライブラリを使用すると、既存の View ベースのテーマにおける色、タイポグラフィ、シェイプのテーマ設定を、コンポーザブルで簡単に再利用できます。

相互運用の場合はライブラリ使うといい感じにやってくれるのもある様子。
なので基本的にComposeでのテーマ管理もKotlinになるわけなのね。

https://developer.android.google.cn/jetpack/compose/interop?hl=ja

rmakiyamarmakiyama

@Previewを使ったプレビューの表示は複数定義できるのか!へえ〜
基本的にはプレビュー用でどこかから呼ぶものではない感じかな、コードラボ終わったら使い方をいろんなプロジェクトでみてみよう。
プレビュー便利ね。

rmakiyamarmakiyama

Deploy Preview押したらプレビューのコンポーネントだけ(?)画面に表示されたんだけど、コンポーネント単位での実際の画面で確認したい用途かな?意外と便利かも?
deploy preview

rmakiyamarmakiyama

再利用を考えながらコンポーネントを作るの大事だけどこの感覚は普段の脳の使い方と違いそう

rmakiyamarmakiyama

7. Animating your listの選択した状態、リストをスクロールすると状態がリセットされるぽいな。
LazyColumnだと内部状態は初期化される感じぽい?
なので、rememberSaveableにすると値は保持される様子。

rmakiyamarmakiyama

Layouts in Jetpack Composeコードラボをゆるっとやっていくよ

rmakiyamarmakiyama
MaterialTheme.colors.onSurface.copy(alpha = 0.2f)

みたいにして、マテリアルカラーの透過度とかを変更できるの、めちゃ便利だけど用法用量を正しく使う必要ありそうな気がしてる。
頻出のものとか統一したいのは、別途カラーを定義するなりスタイルにするなりしたほうがよさそう。

rmakiyamarmakiyama

Most composables accept an optional modifier parameter to make them more flexible, enabling the caller to modify them.

これ大事そう。

@Composable
fun PhotographerCard(modifier: Modifier = Modifier) {
    Row(modifier) { ... }
}
rmakiyamarmakiyama

Slotの概念おもしろい。Codelabとかひととおりしたら試してみたい。

rmakiyamarmakiyama

ScaffoldtopBarもSlot扱いなのか!勝手にTopAppBarだけ入れられると思ってた…
その他の要素も、@Composable () -> Unit = {}だから好きなコンポーザブルを入れられる。

rmakiyamarmakiyama

ColmnでもverticalScrollを追加するとスクロールできるのね

rmakiyamarmakiyama

忘れていると時間を溶かす妖怪についても記載があってやさしい。

<uses-permission android:name="android.permission.INTERNET" />
rmakiyamarmakiyama
val placeable = measurable.measure(constraints)

measure関数の返り値はPlaceableで、widthとかheightとかパラメータで持ってるぽい。
placeRelativeを呼び出して配置するとのこと。

rmakiyamarmakiyama

Layoutでじぶんでこねこねを繰り返さないと慣れなそう。

rmakiyamarmakiyama

基本の基本は

val placeable = measurable.measure(constraints)

で、Placeableを取得する。

StaggeredGridの場合、この取得したPlaceableの情報から自身を構築するために必要なサイズを計算してる感じなのかな。

慣れればViewGroupを拡張してのやつより簡単そう?

rmakiyamarmakiyama

remember関数はkeyを渡すことができるのか!にゃるほど。

このスクラップは2021/08/01にクローズされました