11package com.smarttoolfactory.composematerialslider.demo
22
3- import androidx.compose.foundation.background
3+ import androidx.compose.foundation.BorderStroke
44import androidx.compose.foundation.layout.Column
55import androidx.compose.foundation.layout.fillMaxSize
6- import androidx.compose.foundation.layout.offset
76import androidx.compose.foundation.layout.padding
87import androidx.compose.foundation.rememberScrollState
9- import androidx.compose.foundation.shape.CircleShape
10- import androidx.compose.foundation.shape.RoundedCornerShape
118import androidx.compose.foundation.verticalScroll
12- import androidx.compose.material.Text
139import androidx.compose.runtime.*
1410import androidx.compose.ui.Modifier
15- import androidx.compose.ui.draw.shadow
16- import androidx.compose.ui.geometry.Offset
1711import androidx.compose.ui.graphics.Color
18- import androidx.compose.ui.layout.onSizeChanged
19- import androidx.compose.ui.unit.IntOffset
2012import androidx.compose.ui.unit.dp
21- import com.smarttoolfactory.composematerialslider.ui.theme.Green400
22- import com.smarttoolfactory.composematerialslider.ui.theme.Pink400
13+ import com.smarttoolfactory.composematerialslider.ui.theme.Blue400
2314import com.smarttoolfactory.composematerialslider.ui.theme.Red400
2415import com.smarttoolfactory.slider.ColorfulSlider
2516import com.smarttoolfactory.slider.MaterialSliderDefaults
26- import com.smarttoolfactory.slider.SliderWithTitle
27- import kotlin.math.roundToInt
17+ import com.smarttoolfactory.slider.SliderBrushColor
2818
2919@Composable
3020fun SliderPropertiesDemo () {
@@ -35,96 +25,49 @@ fun SliderPropertiesDemo() {
3525 .verticalScroll(rememberScrollState())
3626 .padding(20 .dp)
3727 ) {
28+ TitleText (" Solid Border" )
29+ var progress1 by remember { mutableStateOf(0f ) }
30+ ColorfulSlider (
31+ value = progress1,
32+ thumbRadius = 10 .dp,
33+ trackHeight = 12 .dp,
34+ onValueChange = { value ->
35+ progress1 = value
36+ },
37+ colors = MaterialSliderDefaults .materialColors(
38+ activeTrackColor = SliderBrushColor (color = Color .Black ),
39+ inactiveTrackColor = SliderBrushColor (color = Color .Transparent )
40+ ),
41+ borderStroke = BorderStroke (1 .dp, Color .Black )
42+ )
3843
39- TitleText (" SliderWithTitle" )
40- Column (modifier = Modifier .padding(horizontal = 24 .dp)) {
41- var labelProgress by remember { mutableStateOf(0f ) }
42- SliderWithTitle (
43- value = labelProgress,
44- onValueChange = {
45- labelProgress = it
46- },
47- label = {
48- Text (
49- text = " $${labelProgress.roundToInt()} " ,
50- modifier = Modifier
51- .shadow(1 .dp, shape = CircleShape )
52- .background(Pink400 , shape = CircleShape )
53- .padding(5 .dp),
54- color = Color .White
55- )
56- },
57- thumbRadius = 10 .dp,
58- trackHeight = 10 .dp,
59- valueRange = 0f .. 100f ,
60- colors = MaterialSliderDefaults .materialColors()
61- )
62- }
63-
64- TitleText (" Sliders that return value and offset" )
65- Column (modifier = Modifier .padding(horizontal = 24 .dp)) {
66- var labelProgress by remember { mutableStateOf(0f ) }
67- var labelOffset by remember { mutableStateOf(Offset .Zero ) }
68-
69- var labelWidth = 0
70- Text (text = " Label" ,
71- modifier = Modifier
72- .offset {
73- IntOffset (labelOffset.x.toInt() - labelWidth / 2 , labelOffset.y.toInt())
74- }
75- .onSizeChanged {
76- labelWidth = it.width
77- }
78- .shadow(1 .dp, shape = RoundedCornerShape (10 .dp))
79- .background(Red400 , shape = RoundedCornerShape (10 .dp))
80- .padding(5 .dp),
81- color = Color .White
82- )
83-
84- ColorfulSlider (
85- value = labelProgress,
86- onValueChange = { value, offset ->
87- labelProgress = value
88- labelOffset = offset
89- },
90- thumbRadius = 10 .dp,
91- trackHeight = 10 .dp,
92- colors = MaterialSliderDefaults .materialColors()
93- )
94- }
95-
96- Column (modifier = Modifier .padding(horizontal = 24 .dp)) {
97-
98- var labelProgress by remember { mutableStateOf(0f ) }
99- var labelOffset by remember { mutableStateOf(Offset .Zero ) }
100-
101- var labelWidth by remember { mutableStateOf(0 ) }
102- Text (text = " Price $${labelProgress.roundToInt()} " ,
103- modifier = Modifier
104- .offset {
105- IntOffset (labelOffset.x.toInt() - labelWidth / 2 , labelOffset.y.toInt())
106- }
107- .onSizeChanged {
108- labelWidth = it.width
109- }
110- .shadow(1 .dp, shape = RoundedCornerShape (10 .dp))
111- .background(Green400 , shape = RoundedCornerShape (10 .dp))
112- .padding(5 .dp),
113- color = Color .White
114- )
44+ ColorfulSlider (
45+ value = progress1,
46+ thumbRadius = 12 .dp,
47+ trackHeight = 14 .dp,
48+ onValueChange = { value ->
49+ progress1 = value
50+ },
51+ colors = MaterialSliderDefaults .materialColors(
52+ activeTrackColor = SliderBrushColor (color = Red400 ),
53+ inactiveTrackColor = SliderBrushColor (color = Color .Transparent )
54+ ),
55+ borderStroke = BorderStroke (1 .dp, Red400 )
56+ )
11557
116- ColorfulSlider (
117- value = labelProgress,
118- onValueChange = { value, offset ->
119- labelProgress = value
120- labelOffset = offset
121- },
122- thumbRadius = 10 .dp,
123- trackHeight = 10 .dp,
124- valueRange = 0f .. 100f ,
125- colors = MaterialSliderDefaults .materialColors()
126- )
127- }
58+ ColorfulSlider (
59+ value = progress1,
60+ thumbRadius = 10 .dp,
61+ trackHeight = 14 .dp,
62+ onValueChange = { value ->
63+ progress1 = value
64+ },
65+ colors = MaterialSliderDefaults .materialColors(
66+ activeTrackColor = SliderBrushColor (color = Blue400 ),
67+ inactiveTrackColor = SliderBrushColor (color = Color .Transparent )
68+ ),
69+ borderStroke = BorderStroke (1 .dp, Blue400 )
70+ )
12871
12972 TitleText (" Draw Inactive Color Option" )
13073 var progress2 by remember { mutableStateOf(0f ) }
0 commit comments