Android Jetpack compose
- 官网地址
- 示例1
2. 示例2
3. 代码展示
import android.content.Intent
import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.animation.animateColorAsState
import androidx.compose.animation.animateContentSize
import androidx.compose.foundation.*
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.shape.ZeroCornerSize
import androidx.compose.material.*
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Alignment.Companion.Center
import androidx.compose.ui.Alignment.Companion.CenterHorizontally
import androidx.compose.ui.Alignment.Companion.CenterVertically
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.geometry.CornerRadius
import androidx.compose.ui.graphics.BlendMode
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.ExperimentalUnitApi
import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.TextUnitType
import androidx.compose.ui.unit.dp
import com.logistics.composedemo.ui.theme.ComposeDemoTheme
class MainActivity : ComponentActivity() {
var activity: ComponentActivity = this
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
ComposeDemoTheme {
// A surface container using the ‘background’ color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
// Greeting(Message(“标题”, “内容”, “具体内容”))
initLayout(this)
}
}
}
}
fun getActivity1(): ComponentActivity {
return this
}
@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
ComposeDemoTheme {
initLayout(this)
}
}
}
fun toast(text: String) =
Toast.makeText(/* context = /MeApp.context, / text = /
text, / duration = */
Toast.LENGTH_SHORT
)
.show()
@OptIn(ExperimentalUnitApi::class)
@Composable
fun Greeting(msg: Message) {
Row(modifier = Modifier.padding(all = 8.dp)) {
Image(
painter = painterResource(id = R.drawable.ic_launcher_foreground),
contentDescription = null,
modifier = Modifier
.size(40.dp)
.clip(
CircleShape
)
.border(1.dp, MaterialTheme.colors.primaryVariant, CircleShape)
)
Spacer(modifier = Modifier.width(8.dp))
Column {
Text(text = “Hello ${msg.title}!”)
Text(
text = “Hello ${msg.body}!”,
style = TextStyle(
color = Color(R.color.purple_200),
fontSize = TextUnit(10f, TextUnitType.Sp)
)
)
Spacer(modifier = Modifier.width(2.dp))
Surface(shape = MaterialTheme.shapes.small, elevation