[Android] Jetpack Compose Modifier
droidkaigi2014を見たのでメモ
Modifierは約150種類ある
Action
clickable
クリック、タップなどのイベントを検出
draggable
単一のOrientationでドラッグする
selectable
項目の選択管理、ラジオボタンやチェックボックスのような動作
combinedClickable
onClick, onDoubleClick, onLongClickといった複数のタッチイベントを1つのComposableで処理できる
draggable2D
2次元方面(水平と垂直両方)でドラッグする
selectableGroup
複数の項目から1つだけ選択できるグループを作成する
toggleable
トグルボタン、イベントを介して切り替えを可能にする
triStateToggleable
toggleableの拡張、on/off/不確定の状態を切り替え可能にする
Alignment
align
指定の方向に揃える、Column, Row, Box内で使用できる
alignByBaseline
RowやColumn内でベースラインを揃える(16spのTextと12spの文字を横並びにしたいときなど)
Border
border
枠線を追加、太さ、色、形状を指定できる
Drawing
background
背景に色、グラデーションを設定
clip
描画範囲を指定した形状でくり抜く
alpha
0.0f(透明)~1.0f(不透明)で透明度を設定できる
zIndex
値が大きい要素を手前に描画する、デフォルトは0
clipToBounds
子要素が親要素の境界からはみ出さないように切り取る、親要素につける
shadow
影を描画するgraphicsLayerを作成する、影の色、形状を指定できる
drawBehind
要素の背後にカスタム描画を行う、線:drawLine, 円:drawCircle, テキスト:drawTextなど描画関数がある
Padding
padding
コンテンツの端にスペースを追加する
paddingFromBaseline
ベースラインを基準としたpaddingを追加する
Pointer
pointerInput
タッチやマウスなどのポインターイベントを処理するための低レベルのModifier、カスタムジェスチャー(ドラッグ、タップ、ズーム)を実装するのに必要
Semantics(Composableの意味や役割を表すメタデータ)
アクセシビリティの向上
semantics
テストやユーザー補助機能(読み上げ)などで使用するために、セマンティクスのkey-valueペアをレイアウトノードに追加する
clearAndSetSemantics
子要素の既存のセマンティクス情報をクリアし、新しい情報を設定する
progressSemantics
進行状況インジケータの現在の進行状況を伝えることが可能になる
Size
wrapContentHeight, wrapContentWidth
要素の内容が収まる最小限の高さ・幅で表示
wrapContentSize
要素の内容が収まる最小限のサイズで表示
defaultMinSize
要素の最小サイズを指定
heightIn, widthIn
min dpからmax dpまでの範囲に大きさを制限する、画像の場合minより小さい場合拡大はされない、トリミングしたい場合は、clipを使用
animateContentSize
要素のサイズ変更をアニメーションによって滑らかに変化させる
Test
testTag
テスト用のタグをつける、UIテストの場合このタグを使って識別できる
Transformations
rotate
要素を指定した角度で回転させる
scale
要素を指定した倍率で拡大・縮小させる
transformable
ジェスチャーに応じてサイズや回転を変更できるようにする
Other
basicMarquee
幅が広すぎて利用可能なスペースに収まらないコンテンツをマーキアニメーションで表示する
blur
要素にボカシ効果を適用ボカシの半径を指定でき、値が大きいとボカシが強くなる、Android12(API31)以上で使用可能
hoverable
要素にホバーインタラクションを追加する、エミュレータではタッチイベントしかサポートされていないので動作確認できない
magnifier
拡大機能(虫眼鏡)、Android9(API28)以上で利用可能
onPlaced
要素のレイアウトが確定したとき、変更されたとき実行されるコールバックを提供
placeholder
wear OS by Googleでコンテンツの読み込み中などの時にプレースホルダーを表示
placeholderShimmer
wear OS by Googleでコンテンツの読み込み中などの時に点滅するプレースホルダーを表示
Discussion