Slider
コンポーザブルを使うと、ユーザーが値を選択できるスライダーを簡単に作成することができます。
目次
Sliderの基本的な使い方
Slider(
value = 現在のスライダーの値,
onValueChange = {
// スライダーの値が変わった時の処理
},
)
Slider
を使用することで、 0 から 1 の範囲で値を選択できるようになります。
value
パラメータは現在選択されている値を表し、onValueChange
パラメータは値が変更されたときに呼び出されるコールバック関数を指定します。
以下、Sliderを使った簡単なプログラムです。
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material.Slider
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
@Composable
fun MyComposable() {
var sliderPosition by remember { mutableStateOf(0f) }
Column(
modifier = Modifier
.padding(16.dp)
.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(text = "選択された値: $sliderPosition")
Slider(
value = sliderPosition,
onValueChange = { sliderPosition = it},
)
}
}
Valueの値を0〜1から変更したい場合
Sliderの引数valueRange
を設定することで範囲を変更することができます。
以下、範囲を0〜100に変更した例です。
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material.Slider
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
@Composable
fun MyComposable() {
var sliderPosition by remember { mutableStateOf(0f) }
Column(
modifier = Modifier
.padding(16.dp)
.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(text = "選択された値: $sliderPosition")
Slider(
value = sliderPosition,
onValueChange = { sliderPosition = it},
valueRange = 0f..100f
)
}
}
Comment