序文
次のようにするだけで、角を丸くしたり、境界線を追加したりするなど、Compose で描画可能な形状を作成するのは非常に便利です。
形:
Surface(
shape = MaterialTheme.shapes.large,
color = Color.Gray,
modifier = Modifier.size(50.dp)
) {
}
シェイプ+ボーダー:
Surface(
shape = MaterialTheme.shapes.large,
border = BorderStroke(
width = 3.dp,
color = Color.Yellow,
),
color = Color.Gray,
modifier = Modifier.size(50.dp)
) {
}
ただし、直接選択状態セレクターはありません
文章
そのため、ドキュメントを探してグループの友人に尋ねたところ、状態セレクターとして実行するのが少し簡単であることがわかりました: InteractionSource
ps: isSelect、isCheck、isEnable 状態があるため、State オブジェクトを使用して簡単に実装できるため、詳細には触れません。
コントロールを押すと色が変わる状態セレクターを実装しましょう
val interactionSource = remember { MutableInteractionSource() }
val isPressed by interactionSource.collectIsPressedAsState()//按下的状态
Text(
text = "按下我试试试试试试试试试试试试",
color = if (isPressed) Color.Blue else Color.Cyan,//监听状态设置颜色
modifier = M.clickable(
interactionSource = interactionSource,//设置
indication = LocalIndication.current//按下的指示器效果,当前是水波纹,null就没有东西了
) {
"123".showToast()
}
)
正常な状態:
プレス状態:
良い梱包方法が見つからないだけで、このようにしか使えないようです
エピローグ
さて、別の記事
This InteractionSource can also monitor drag, focus, and hover events. 詳細については、公式ドキュメント: InteractionSource | Android Developers (google.cn)を参照してください。