Jetpack Compose Dev Challenge Week3で学んだことまとめ

Posted by kwmt27 on Mon, Mar 15, 2021

jetpack compose

全体にかかわること(テーマなど)

背景を入れるには

Surface(color = MaterialTheme.colors.primary) 

が大事

Welcome画面

Login画面

Textの途中でリンクを入れる

https://stackoverflow.com/questions/65567412/jetpack-compose-text-hyperlink-some-section-of-the-text

EditTextの枠線の色を変更するには

outlinedTextFieldColorsの部分

 OutlinedTextField(
    modifier = Modifier
        .height(56.dp)
        .fillMaxWidth(),
    value = "", onValueChange = { /*TODO*/ },
    placeholder = {
        Text(
            text = "Password (8+ characters)",
            style = DevChallengeTheme.typography.body1,
            color = DevChallengeTheme.colors.textBody1,
        )
    },
    colors = outlinedTextFieldColors(
        cursorColor = DevChallengeTheme.colors.textBody1,
        focusedBorderColor = DevChallengeTheme.colors.textBody1.copy(alpha = ContentAlpha.high),
        unfocusedBorderColor = DevChallengeTheme.colors.textBody1,
    ),
    singleLine = true,
)

検索ボックスを作成(SearchBar)

ここが参考になりそう。 https://github.com/android/compose-samples/blob/main/Jetsnack/app/src/main/java/com/example/jetsnack/ui/home/search/Search.kt

ホーム画面

###BottomNavigation

https://developer.android.com/jetpack/compose/navigation#bottom-nav https://proandroiddev.com/implement-bottom-bar-navigation-in-jetpack-compose-b530b1cd9ee2

  • BottomItemを切り替えまくっても、バックで、startDestinationに戻る(cart -> Profileと遷移してバックし場合cartに戻っていたのをhomeに戻るようにする)
navController.navigate(screen.route) {
    // BottomItemを切り替えまくっても、バックで、startDestinationに戻る
    popUpTo = navController.graph.startDestination
}

CheckBox

Checkbox(
    checked = checkedState, onCheckedChange = { checkedState = it },
    modifier = Modifier.align(Alignment.CenterVertically),
    colors = CheckboxDefaults.colors(
        uncheckedColor = DevChallengeTheme.colors.secondary,
        checkedColor = DevChallengeTheme.colors.secondary,
        checkmarkColor = DevChallengeTheme.colors.onSecondary,
    )
)

### アイテム要素でいちぶだけ右側に配置

Row(
    horizontalArrangement = Arrangement.SpaceBetween
)

横方向にリストを作るには

LazyRow(
    content = {
        items(viewModel.themes) { theme ->
            // Cardなど
        }
    }
)

LazyRowのパディングをつけるには

  • アイテム間のスペースを開けるには
horizontalArrangement = spacedBy(8.dp),
  • LazyRowの左右のpaddingを開けるには
contentPadding = PaddingValues(start = 16.dp, end = 16.dp),

縦方向にリストを作るには

スクロール

https://developer.android.com/jetpack/compose/gestures

画像素材

https://www.pexels.com/photo/scenic-view-of-mountains-during-dawn-1266810/

アイコン素材

https://www.flaticon.com/free-icon/sunny_890347?term=weather&page=1&position=48&page=1&position=48&related_id=890347&origin=search



comments powered by Disqus