カテゴリー:
Compose を用いた Android アプリ開発の基礎 / ユニット 1: 初めての Android アプリ
閲覧数:10 配信日:2024-10-22 02:52
あなたのコードで起きている問題について説明します。エラーは、未解決の参照と @Composable 関数の文脈に関するものです。
1.未解決の参照: HappyBirthdayTheme HappyBirthdayTheme が正しくインポートされていない可能性があります。次のインポート文を追加してください:
import com.example.happybirthday.ui.theme.HappyBirthdayTheme
2.@Composable 関数の文脈: @Composable 関数は、他の @Composable 関数の中で呼び出される必要があります。以下のコードで、GreetingText 関数が正しく呼び出されていることを確認します。
コード全体を見直し、修正しました:
package com.example.happybirthday
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Row
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.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.happybirthday.ui.theme.HappyBirthdayTheme
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
HappyBirthdayTheme {
MyApp()
}
}
}
}
@Composable
fun MyApp() {
// テーマの 'background' 色を使用するサーフェースコンテナ
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
GreetingText(message = "Happy Birthday Sam!", from = "From Emma")
}
}
@Composable
fun GreetingText(message: String, from: String, modifier: Modifier = Modifier) {
Row(
modifier = modifier.padding(16.dp)
) {
Text(
text = message,
fontSize = 100.sp,
modifier = Modifier.padding(end = 8.dp) // テキスト間の余白を追加
)
Text(
text = from,
fontSize = 36.sp
)
}
}
@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
HappyBirthdayTheme {
MyApp()
}
}