ConstrainLayout

Зависимости в build.gradle:

implementation("androidx.constraintlayout:constraintlayout-compose:1.0.1")

MainActivity.kt

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.constraintlayout.compose.ConstraintLayout
import com.neco_desarrollo.constrainlayoutlessony.ui.theme.ConstrainLayoutLessonYTheme

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
ConstrainLayoutLessonYTheme {
GreetingPreview()
}
}
}
}



@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
ConstraintLayout(modifier = Modifier.fillMaxSize()) {
val (text, button, image) = createRefs()
val bottomGuideLine = createGuidelineFromBottom(0.2f)

Button(onClick = {

},
modifier = Modifier.constrainAs(button){
bottom.linkTo(bottomGuideLine)
top.linkTo(bottomGuideLine)
end.linkTo(parent.end)
start.linkTo(parent.start)
}
) {
Text(text = "Click me")
}
Text(
text = "Hello World",
modifier = Modifier.constrainAs(text){
bottom.linkTo(button.top, 16.dp)
start.linkTo(button.start)
end.linkTo(button.end)
}
)
Image(painter = painterResource(id = R.drawable.thanos),
contentDescription = "bla",
modifier = Modifier.constrainAs(image){
bottom.linkTo(text.top, 16.dp)
start.linkTo(button.start)
end.linkTo(button.end)
}
)
}
}

Добавить комментарий

Ваш адрес email не будет опубликован.