Chethan
10/22/2020, 11:46 AMimport androidx.compose.foundation.ScrollableColumn
import androidx.compose.foundation.Text
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.selection.selectable
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material.OutlinedTextField
import androidx.compose.material.ripple.RippleIndication
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.ui.tooling.preview.Preview
@Preview
@Composable
fun Preview() {
ScrollableColumn(modifier = Modifier.fillMaxWidth().background(Color.DarkGray)) {
(1..10).forEach {
Button(50.dp, 16)
}
var text = remember { mutableStateOf("") }
OutlinedTextField(
value = text.value,
keyboardType = KeyboardType.Text,
onValueChange = { text.value = it },
)
}
}
@Composable
fun Button(buttonSize: Dp, fontSize: Int) {
Row(
modifier = Modifier.wrapContentWidth().wrapContentHeight().padding(top = 10.dp),
verticalAlignment = Alignment.CenterVertically
) {
val toggleIndex = remember { mutableStateOf(0) }
(1..5).forEach { index ->
val isSelected = toggleIndex.value == index
Box(
modifier = Modifier
.border(
1.dp,
color = if (isSelected) Color.Black else Color.White,
CircleShape
)
.background(
color = if (isSelected) Color.Black else Color.White,
shape = CircleShape
)
.selectable(
enabled = true,
selected = true,
onClick = { toggleIndex.value = index },
indication = RippleIndication(bounded = true, radius = 24.dp)
).preferredSize(buttonSize)
) {
Text(
text = index.toString(),
style = TextStyle(
color = if (isSelected) Color.White else Color.Black,
fontSize = fontSize.sp,
textAlign = TextAlign.Center
),
modifier = Modifier.align(Alignment.Center)
)
}
Spacer(modifier = Modifier.width(10.dp))
}
}
}
tieskedh
10/22/2020, 12:11 PMjim
10/22/2020, 12:42 PMChethan
10/22/2020, 1:11 PMbharat to
10/27/2020, 2:25 PM