Rus*_*tam 2 button android-jetpack-compose ripple-effect
我做了一个简单的应用程序。它有两个屏幕:onBoarding 和 homeScreen:
@Composable
fun DigitalBanking() {
var shouldShowOnBoarding by rememberSaveable { mutableStateOf(true) }
if (shouldShowOnBoarding) {
OnBoardingScreen {
shouldShowOnBoarding = false
}
} else {
MainScreen()
}
}
@Composable
fun OnBoardingScreen(
onClick: () -> Unit
) {
Surface {
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Top,
horizontalAlignment = Alignment.CenterHorizontally
) {
Box(
modifier = Modifier
.fillMaxSize()
.background(color = MaterialTheme.colors.onBackground)
)
{
Image(
painter = painterResource(id = R.drawable.starting_screen),
contentDescription = null,
modifier = Modifier
.fillMaxSize()
.padding(bottom = 160.dp)
)
Column(
modifier = Modifier
.fillMaxSize()
.padding(horizontal = 16.dp),
verticalArrangement = Arrangement.Bottom,
horizontalAlignment = Alignment.Start,
) {
Text(
text = stringResource(id = R.string.on_boarding_moto),
color = MaterialTheme.colors.background,
style = Typography.h4,
)
Text(
modifier = Modifier
.padding(vertical = 8.dp),
text = stringResource(id = R.string.on_boarding_lure),
color = MaterialTheme.colors.onSecondary,
fontFamily = FontFamily(Font(R.font.plus_jakarta_sans)),
)
Button(
modifier = Modifier`enter code here`
.padding(vertical = 8.dp)
.fillMaxWidth(),
colors = ButtonDefaults.buttonColors(backgroundColor = ArcTransferColor),
onClick = onClick,
) {
Text(
text = "Get Started!",
style = MaterialTheme.typography.button,
)
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
流程是:当我在登机屏幕上时,我只需点击一个按钮“开始”即可打开主屏幕。它工作正常,但是当我点击此按钮时没有连锁反应。你能告诉我该怎么做吗?
您可以使用 Modifier 的可点击属性并提供交互式波纹效果,如下所示:
Button(
modifier = Modifier`enter code here`
.padding(vertical = 8.dp)
.fillMaxWidth()
.clickable(
interactionSource = MutableInteractionSource(),
indication = rememberRipple(bounded = false, color = ColorPrimary),
onClick = {
/*TODO*/
}
),
colors = ButtonDefaults.buttonColors(backgroundColor = ArcTransferColor),
onClick = /*onClick--->You can remove this now*/,
) {
Text(
text = "Get Started!",
style = MaterialTheme.typography.button,
)
}
Run Code Online (Sandbox Code Playgroud)