diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 2b77afa..dfd098c 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -66,4 +66,6 @@ dependencies {
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
debugImplementation("androidx.compose.ui:ui-tooling")
debugImplementation("androidx.compose.ui:ui-test-manifest")
+
+ implementation("androidx.compose.ui:ui-text-google-fonts:1.6.1")
}
\ No newline at end of file
diff --git a/app/src/main/java/com/eacenic/weighttrack/MainActivity.kt b/app/src/main/java/com/eacenic/weighttrack/MainActivity.kt
index c6a8214..cdda284 100644
--- a/app/src/main/java/com/eacenic/weighttrack/MainActivity.kt
+++ b/app/src/main/java/com/eacenic/weighttrack/MainActivity.kt
@@ -3,14 +3,40 @@ package com.eacenic.weighttrack
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.wrapContentHeight
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material3.Button
+import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.ModalBottomSheet
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
+import androidx.compose.material3.rememberModalBottomSheetState
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.runtime.saveable.rememberSaveable
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
-import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.draw.clip
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.unit.TextUnit
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
import com.eacenic.weighttrack.ui.theme.WeightTrackTheme
+import kotlinx.coroutines.launch
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
@@ -22,25 +48,84 @@ class MainActivity : ComponentActivity() {
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
- Greeting("Android")
+ WeightTrackLayout()
}
}
}
}
}
+@OptIn(ExperimentalMaterial3Api::class)
@Composable
-fun Greeting(name: String, modifier: Modifier = Modifier) {
- Text(
- text = "Hello $name!",
- modifier = modifier
- )
+fun WeightTrackLayout() {
+
+ val scope = rememberCoroutineScope()
+
+ var openBottomSheet by rememberSaveable { mutableStateOf(false) }
+ var bottomSheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true)
+
+ Surface(
+ modifier = Modifier.fillMaxSize(),
+ color = Color.Gray
+ ) {
+ Column {
+ Row {
+ CurrentWeight()
+ }
+ Button(onClick = {
+ openBottomSheet = true
+ }) {
+ Text(text = "添加")
+ }
+ }
+
+ if (openBottomSheet) {
+ ModalBottomSheet(
+ onDismissRequest = { openBottomSheet = false },
+ sheetState = bottomSheetState
+ ) {
+ Row {
+ Button(
+ onClick = {
+ scope.launch { bottomSheetState.hide() }.invokeOnCompletion {
+ if (!bottomSheetState.isVisible) {
+ openBottomSheet = false
+ }
+ }
+ }
+ ) {
+ Text(text = "关闭")
+ }
+ }
+ }
+ }
+
+ }
}
-@Preview(showBackground = true)
@Composable
-fun GreetingPreview() {
- WeightTrackTheme {
- Greeting("Android")
+fun CurrentWeight() {
+ Row (
+ modifier = Modifier
+ .wrapContentHeight()
+ .padding(20.dp)
+ .fillMaxWidth(),
+ horizontalArrangement = Arrangement.Center
+ ) {
+ Box(
+ modifier = Modifier
+ .fillMaxWidth(0.9f)
+ .height(120.dp)
+ .clip(RoundedCornerShape(10.dp))
+ .background(Color.Cyan)
+
+ ) {
+ Text(
+ text = "62.6",
+ modifier = Modifier.align(Alignment.Center),
+ fontSize = 80.sp,
+ fontFamily = doodleShadowFontFamily
+ )
+ }
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/eacenic/weighttrack/TextDownloadableFontSnippets.kt b/app/src/main/java/com/eacenic/weighttrack/TextDownloadableFontSnippets.kt
new file mode 100644
index 0000000..a55777b
--- /dev/null
+++ b/app/src/main/java/com/eacenic/weighttrack/TextDownloadableFontSnippets.kt
@@ -0,0 +1,24 @@
+package com.eacenic.weighttrack
+
+import androidx.compose.ui.text.font.FontFamily
+import androidx.compose.ui.text.font.FontStyle
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.text.googlefonts.Font
+import androidx.compose.ui.text.googlefonts.GoogleFont
+
+val provider = GoogleFont.Provider(
+ providerAuthority = "com.google.android.gms.fonts",
+ providerPackage = "com.google.android.gms",
+ certificates = R.array.com_google_android_gms_fonts_certs
+)
+
+val fontName = GoogleFont("Rubik Doodle Shadow")
+
+val fontFamily = FontFamily(
+ Font(
+ googleFont = fontName,
+ fontProvider = provider,
+ weight = FontWeight.Bold,
+ style = FontStyle.Italic
+ )
+)
diff --git a/app/src/main/java/com/eacenic/weighttrack/TextSnippets.kt b/app/src/main/java/com/eacenic/weighttrack/TextSnippets.kt
new file mode 100644
index 0000000..d109bbb
--- /dev/null
+++ b/app/src/main/java/com/eacenic/weighttrack/TextSnippets.kt
@@ -0,0 +1,9 @@
+package com.eacenic.weighttrack
+
+import androidx.compose.ui.text.font.Font
+import androidx.compose.ui.text.font.FontFamily
+import androidx.compose.ui.text.font.FontWeight
+
+val doodleShadowFontFamily = FontFamily(
+ Font(R.font.rubik_doodle_shadow_regular, FontWeight.Bold)
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/eacenic/weighttrack/ui/track/WeightTrack.kt b/app/src/main/java/com/eacenic/weighttrack/ui/track/WeightTrack.kt
index 10792ac..8d96b33 100644
--- a/app/src/main/java/com/eacenic/weighttrack/ui/track/WeightTrack.kt
+++ b/app/src/main/java/com/eacenic/weighttrack/ui/track/WeightTrack.kt
@@ -1,8 +1,3 @@
package com.eacenic.weighttrack.ui.track
import androidx.compose.runtime.Composable
-
-@Composable
-fun WeightTrackLayout() {
-
-}
diff --git a/app/src/main/res/font/rubik_doodle_shadow_regular.ttf b/app/src/main/res/font/rubik_doodle_shadow_regular.ttf
new file mode 100755
index 0000000..d48d121
Binary files /dev/null and b/app/src/main/res/font/rubik_doodle_shadow_regular.ttf differ
diff --git a/app/src/main/res/values/font_certs.xml b/app/src/main/res/values/font_certs.xml
new file mode 100644
index 0000000..5ece3f5
--- /dev/null
+++ b/app/src/main/res/values/font_certs.xml
@@ -0,0 +1,32 @@
+
+
+
+
+ - @array/com_google_android_gms_fonts_certs_dev
+ - @array/com_google_android_gms_fonts_certs_prod
+
+
+ -
+ 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
+
+
+
\ No newline at end of file