Signal-Android/core-ui/src/main/java/org/signal/core/ui/Rows.kt

71 wiersze
1.8 KiB
Kotlin
Czysty Zwykły widok Historia

2023-02-28 17:19:34 +00:00
package org.signal.core.ui
2023-03-02 18:31:43 +00:00
import androidx.compose.foundation.clickable
2023-02-28 17:19:34 +00:00
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.RadioButton
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
2023-03-02 18:31:43 +00:00
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
2023-03-02 18:23:04 +00:00
import androidx.compose.ui.Alignment
2023-02-28 17:19:34 +00:00
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import org.signal.core.ui.theme.SignalTheme
object Rows {
/**
* A row consisting of a radio button and text, which takes up the full
* width of the screen.
*/
@Composable
fun RadioRow(
selected: Boolean,
text: String,
modifier: Modifier = Modifier
) {
Row(
modifier = modifier
.fillMaxWidth()
.padding(
horizontal = dimensionResource(id = R.dimen.core_ui__gutter),
vertical = 16.dp
2023-03-02 18:23:04 +00:00
),
verticalAlignment = Alignment.CenterVertically
2023-02-28 17:19:34 +00:00
) {
RadioButton(
selected = selected,
onClick = null,
modifier = Modifier.padding(end = 24.dp)
)
Text(
text = text,
style = MaterialTheme.typography.bodyLarge
)
}
}
}
@Preview
@Composable
private fun RadioRowPreview() {
SignalTheme(isDarkMode = false) {
2023-03-02 18:31:43 +00:00
var selected by remember { mutableStateOf(true) }
Rows.RadioRow(
selected,
"RadioRow",
modifier = Modifier.clickable {
selected = !selected
}
)
2023-02-28 17:19:34 +00:00
}
}