-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
MainActivity.kt
98 lines (90 loc) 路 3.72 KB
/
MainActivity.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/*
* Copyright 漏 Marc Auberer 2021-2023. All rights reserved
*/
package com.chillibits.composenumberpickersample
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.widget.Toast
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.IntrinsicSize
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.width
import androidx.compose.material.Text
import androidx.compose.ui.Alignment.Companion.CenterHorizontally
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.layoutId
import androidx.constraintlayout.compose.ConstraintLayout
import androidx.constraintlayout.compose.ConstraintSet
import androidx.core.view.WindowCompat
import com.chillibits.composenumberpicker.HorizontalNumberPicker
import com.chillibits.composenumberpicker.VerticalNumberPicker
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, true)
setContent {
AppTheme {
ConstraintLayout(
constraintSet = ConstraintSet {
val layout = createRefFor("picker")
constrain(layout) {
top.linkTo(parent.top)
bottom.linkTo(parent.bottom)
start.linkTo(parent.start)
end.linkTo(parent.end)
}
},
modifier = Modifier.fillMaxSize()
) {
Column(
modifier = Modifier.layoutId("picker"),
horizontalAlignment = CenterHorizontally
) {
Text(
text = getString(R.string.horizontal_picker),
modifier = Modifier.width(IntrinsicSize.Max).align(CenterHorizontally))
HorizontalNumberPicker(
min = 10,
max = 100,
default = 50,
onValueChange = { value ->
Toast.makeText(this@MainActivity, value.toString(), Toast.LENGTH_SHORT).show()
}
)
Text(
text = getString(R.string.vertical_picker),
modifier = Modifier.width(IntrinsicSize.Max).align(CenterHorizontally))
VerticalNumberPicker(
min = 20,
max=30,
default = 20,
onValueChange = { value ->
Toast.makeText(this@MainActivity, value.toString(), Toast.LENGTH_SHORT).show()
}
)
}
}
}
}
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.menu_activity_main, menu)
return super.onCreateOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when(item.itemId) {
R.id.action_github -> openGitHubPage()
}
return super.onOptionsItemSelected(item)
}
private fun openGitHubPage() {
startActivity(Intent(Intent.ACTION_VIEW).apply {
data = Uri.parse(getString(R.string.github_link))
})
}
}