Skip to content

Commit b498fc3

Browse files
wintmainwosys
authored andcommitted
[foundation][feat]Optimize starter compose code
1 parent 67ec72e commit b498fc3

File tree

2 files changed

+83
-10
lines changed

2 files changed

+83
-10
lines changed

app-catalog/samples/foundation/src/main/java/com/wintmain/foundation/ui/compose/ComposeActivity.kt

Lines changed: 83 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,34 @@
1616

1717
package com.wintmain.foundation.ui.compose
1818

19+
import android.os.Build.VERSION_CODES
1920
import android.os.Bundle
21+
import android.view.WindowInsetsController
2022
import androidx.activity.ComponentActivity
2123
import androidx.activity.compose.setContent
2224
import androidx.activity.enableEdgeToEdge
25+
import androidx.annotation.RequiresApi
26+
import androidx.compose.foundation.Image
27+
import androidx.compose.foundation.layout.Arrangement
28+
import androidx.compose.foundation.layout.Box
29+
import androidx.compose.foundation.layout.Column
2330
import androidx.compose.foundation.layout.fillMaxSize
2431
import androidx.compose.foundation.layout.padding
25-
import androidx.compose.material3.Scaffold
32+
import androidx.compose.material3.MaterialTheme
33+
import androidx.compose.material3.Surface
2634
import androidx.compose.material3.Text
2735
import androidx.compose.runtime.Composable
36+
import androidx.compose.ui.Alignment
2837
import androidx.compose.ui.Modifier
38+
import androidx.compose.ui.layout.ContentScale
39+
import androidx.compose.ui.res.painterResource
40+
import androidx.compose.ui.text.style.TextAlign
2941
import androidx.compose.ui.tooling.preview.Preview
42+
import androidx.compose.ui.unit.dp
43+
import androidx.compose.ui.unit.sp
44+
import androidx.core.view.WindowInsetsCompat
3045
import com.google.android.catalog.framework.annotations.Sample
46+
import com.wintmain.foundation.R
3147

3248
@Sample(
3349
name = "Compose Activity",
@@ -36,34 +52,91 @@ import com.google.android.catalog.framework.annotations.Sample
3652
tags = ["android-samples", "user-interface"],
3753
)
3854
class ComposeActivity : ComponentActivity() {
55+
@RequiresApi(VERSION_CODES.R)
3956
override fun onCreate(savedInstanceState: Bundle?) {
4057
super.onCreate(savedInstanceState)
4158
enableEdgeToEdge()
59+
window.insetsController?.apply {
60+
// 设置window的一些参数可以调整状态栏和导航栏的显示
61+
hide(WindowInsetsCompat.Type.systemBars())
62+
systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
63+
}
4264
setContent {
4365
Android_KickoffTheme {
44-
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
45-
Greeting(
46-
name = "Android",
47-
modifier = Modifier.padding(innerPadding)
66+
Surface(
67+
modifier = Modifier.fillMaxSize(),
68+
color = MaterialTheme.colorScheme.background
69+
) {
70+
// Greeting(
71+
// message = "Happy Birthday!",
72+
// from = "From wintmain",
73+
// modifier = Modifier.padding(8.dp)
74+
// )
75+
GreetingImage(
76+
message = "Happy Birthday",
77+
from = "From wintmain",
78+
modifier = Modifier.padding(8.dp)
4879
)
4980
}
5081
}
5182
}
5283
}
5384

5485
@Composable
55-
fun Greeting(name: String, modifier: Modifier = Modifier) {
56-
Text(
57-
text = "Hello $name!",
86+
fun Greeting(message: String, from: String, modifier: Modifier = Modifier) {
87+
Column(
88+
verticalArrangement = Arrangement.Center,
5889
modifier = modifier
59-
)
90+
) {
91+
Text(
92+
text = message,
93+
fontSize = 60.sp,
94+
lineHeight = 60.sp,
95+
textAlign = TextAlign.Center,
96+
modifier = Modifier.align(alignment = Alignment.CenterHorizontally)
97+
)
98+
Text(
99+
text = from,
100+
fontSize = 24.sp,
101+
modifier = Modifier
102+
.padding(12.dp)
103+
.align(alignment = Alignment.End)
104+
)
105+
}
106+
}
107+
108+
@Composable
109+
fun GreetingImage(message: String, from: String, modifier: Modifier = Modifier) {
110+
val image = painterResource(R.drawable.androidparty)
111+
Box(modifier) {
112+
Image(
113+
painter = image,
114+
contentDescription = null,
115+
contentScale = ContentScale.Crop,
116+
alpha = 0.5f
117+
)
118+
Greeting(
119+
message = message,
120+
from = from,
121+
modifier = Modifier
122+
.fillMaxSize()
123+
.padding(8.dp)
124+
)
125+
}
60126
}
61127

62128
@Preview(showBackground = true)
63129
@Composable
64130
fun GreetingPreview() {
65131
Android_KickoffTheme {
66-
Greeting("wintmain")
132+
// Greeting(
133+
// message = "Happy Birthday",
134+
// from = "from wintmain"
135+
// )
136+
GreetingImage(
137+
message = "Happy Birthday",
138+
from = "from wintmain"
139+
)
67140
}
68141
}
69142
}
5.42 MB
Loading

0 commit comments

Comments
 (0)