在 compose BOX 函数中将值传递给 padding 不会影响输出

问题描述 投票:0回答:1

我是 Android 开发新手。我最近从 Google 开发者网站开始了 Android 开发课程。我正在为生日愿望制作一个应用程序,但出现了问题,我在调用可组合函数时在填充中传递值,但首先当我将 dp 放在值之后(例如 8.dp)时,它显示错误,但随后解决了它只购买导入 dp 单位文件,但现在当我将值传递给它时,不会显示任何错误,但也不会将任何值应用于输出。以下是mainactivity.kt的代码

package com.example.birthdayapp

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
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.compose.ui.unit.sp
import com.example.birthdayapp.ui.theme.BirthdayappTheme

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            BirthdayappTheme {
                // A surface container using the 'background' color from the theme
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ){
                       GreetingImage(message = "Happy Birthday Brother!!!", form = "Prabhat Tripathi")

                }
            }
        }
    }
}

@Composable
fun Greetingtext(modifier: Modifier = Modifier,form: String, message: String){
    Column {
        Text(
            text = message,
            fontSize = 100.sp,
            lineHeight = 116.sp
        )


        Text(
            text = form,
            fontSize = 40.sp
        )
    }
}
@Composable
fun GreetingImage(modifier: Modifier = Modifier,message: String, form: String){
    val image = painterResource(R.drawable.androidparty)
    Box {
        Image(
            painter = image, contentDescription = null

        )
        Greetingtext(form = form, message = message , modifier = Modifier.padding(start =10.dp, top = 5.dp)
        )
    }
}

@Preview(showBackground = true)
@Composable
fun HappyBirthdayWish() {
    BirthdayappTheme {
        GreetingImage( message ="Happy Birthday Brother " , form ="Prabhat Tripathi" )
    }
}

请帮助我,我不明白为什么会发生这种情况。我已尽力解决这个问题,但我无法解决。

android kotlin android-studio android-jetpack-compose padding
1个回答
0
投票

您必须在

modifier
中应用
Greetingtext
参数,如下所示:

@Composable
fun Greetingtext(modifier: Modifier = Modifier,form: String, message: String){
    Column(modifier = modifier) { // <-- this
        Text(...)
        Text(...)
    }
}

同样适用于

GreetingImage
和任何其他可组合项,如果您不使用该参数,它不会执行任何操作。

© www.soinside.com 2019 - 2024. All rights reserved.