您好,登錄后才能下訂單哦!
這篇“Jetpack Compose選擇器怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Jetpack Compose選擇器怎么使用”文章吧。
選擇器主要是指Checkbox復選框,單選開關Switch,滑桿組件Slider等用于提供給用戶選擇一些值和程序交互的組件,比如像復選框Checkbox,可以讓用戶選擇一個或者多個選項,它可以將一個選項打開或者是關閉,通常用來做線上調查問卷或者是模擬考試的場景程序中,再比如滑桿組件可以用來作為調節音量和亮度的數值調整,或者是做進度條。
Checkbox允許用戶從一個集合中選擇一個或者多個選項,而且它可以將一個選項打開或者是關閉,下列是Checkbox的參數列表
@Composable fun Checkbox( checked: Boolean, // 是否被選中 onCheckedChange: ((Boolean) -> Unit)?, // 當復選框被點擊時的回調 modifier: Modifier = Modifier, enabled: Boolean = true, // 是否啟用復選框 interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, colors: CheckboxColors = CheckboxDefaults.colors() // 復選框的演示組 )
我們可以通過下面的代碼了解Checkbox的使用方法
@Composable fun CheckBoxDemo() { val checkedState = remember { mutableStateOf(true) } Checkbox(checked = checkedState.value, onCheckedChange = { checkedState.value = it }, colors = CheckboxDefaults.colors(checkedColor = Color(0xFF0079D3))) }
運行結果:
當我們的復選框有很多個的時候,往往希望能夠統一選擇或者時取消,這種場景下我們就可以使用TriStateCheckbox ,代碼如下:
@Composable fun TriStateCheckBoxDemo() { val(state,onStateChange) = remember { mutableStateOf(true) } val(state2,onStateChange2) = remember { mutableStateOf(true) } val parentState = remember(state, state2) { if(state && state2) ToggleableState.On else if(!state && !state2) ToggleableState.Off else ToggleableState.Indeterminate } val onParentClick = { val s = parentState != ToggleableState.On onStateChange(s) onStateChange2(s) } Column(modifier = Modifier.padding(10.dp,0.dp,0.dp,0.dp)) { TriStateCheckbox(state = parentState, onClick = onParentClick, colors = CheckboxDefaults.colors(checkedColor = MaterialTheme.colors.primary) ) Checkbox(checked = state, onCheckedChange = onStateChange) Checkbox(checked = state2, onCheckedChange = onStateChange2) } }
運行結果如下。
當復選框全選中時,TriStateCheckbox顯示已完成的狀態,而如果只有部分復選框被選中時,TriStateCheckbox則顯示不確定狀態,當我們在這個時候點擊它時,則會將剩余沒有選中的復選框設置為選中狀態,當我們去掉所有選中狀態時,TriStateCheckbox的狀態也被置成了未選中的狀態。
Switch組件可以控制單個項關閉或者是開啟,參數列表如下
@Composable @OptIn(ExperimentalMaterialApi::class) fun Switch( checked: Boolean, // 開關的狀態 onCheckedChange: ((Boolean) -> Unit)?, 點擊開關的回調,會獲得最新的開關狀態 modifier: Modifier = Modifier, enabled: Boolean = true, // 是否啟用 interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, colors: SwitchColors = SwitchDefaults.colors() // 開關組的顏色。 )
Switch組件的使用也特別簡單,代碼如下:
@Composable fun SwitchDemo() { val checkedState = remember { mutableStateOf(true) } Switch(checked = checkedState.value, onCheckedChange = { checkedState.value = it }) }
運行結果:
slider組件類似于傳統視圖的SeekBar,可以用來做音量,亮度之類的數值調整或者是進度條,我們先看看它的參數列表
@Composable fun Slider( value: Float, // 進度值 onValueChange: (Float) -> Unit, // 進度改變的監聽 modifier: Modifier = Modifier, // 修飾符 enabled: Boolean = true, valueRange: ClosedFloatingPointRange<Float> = 0f..1f, // 進度值的范圍默認是0到1 /*@IntRange(from = 0)*/ steps: Int = 0, onValueChangeFinished: (() -> Unit)? = null, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, colors: SliderColors = SliderDefaults.colors() // 滑桿顏色設置,默認值是SliderDefaults.colors )
其中,colors參數是用于設置滑桿各部位的顏色。滑桿組件中可設置顏色的區域很多,例如滑桿小圓球的顏色,滑桿進度條顏色,滑桿底色等,step參數將進度條平分為(step+1) 段,比如當分成兩段時,進度條在第一段之間拉動,超過第一段的一半就自動到第一段,沒超過就退回到原來的位置,Sliderbar的使用代碼如下。
@Composable fun SliderDemo() { var sliderPosition by remember { mutableStateOf(0f) } Text(text = "%.1f".format(sliderPosition*100) + "%") Slider(value = sliderPosition, onValueChange = {sliderPosition = it}) }
運行結果如下
以上就是關于“Jetpack Compose選擇器怎么使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。