1
+ package com.engineer.compose.ui
2
+
3
+ import android.util.Log
4
+ import android.widget.Toast
5
+ import androidx.compose.foundation.layout.Column
6
+ import androidx.compose.foundation.layout.fillMaxSize
7
+ import androidx.compose.foundation.layout.padding
8
+ import androidx.compose.foundation.rememberScrollState
9
+ import androidx.compose.foundation.verticalScroll
10
+ import androidx.compose.material3.Button
11
+ import androidx.compose.material3.Text
12
+ import androidx.compose.runtime.Composable
13
+ import androidx.compose.runtime.getValue
14
+ import androidx.compose.runtime.mutableIntStateOf
15
+ import androidx.compose.runtime.mutableStateListOf
16
+ import androidx.compose.runtime.mutableStateOf
17
+ import androidx.compose.runtime.remember
18
+ import androidx.compose.runtime.setValue
19
+ import androidx.compose.ui.Modifier
20
+ import androidx.compose.ui.graphics.Color
21
+ import androidx.compose.ui.platform.LocalContext
22
+ import androidx.compose.ui.tooling.preview.Preview
23
+ import androidx.compose.ui.unit.dp
24
+
25
+ private const val TAG = " ComposeView"
26
+
27
+
28
+ @Preview
29
+ @Composable
30
+ fun DemoCard () {
31
+ var count by remember { mutableIntStateOf(0 ) }
32
+ var list by remember { mutableStateOf(ArrayList <String >()) }
33
+ val list2 = remember { mutableStateListOf<String >() }
34
+ val list3 = remember { mutableStateListOf(" " ) }
35
+ var list4 = remember { mutableStateOf(ArrayList <String >())}
36
+
37
+ Log .i(TAG ," count -> ${count::class } " )
38
+ Log .i(TAG ," list -> ${list::class } " )
39
+ Log .i(TAG ," list2 -> ${list2::class } " )
40
+ Log .i(TAG ," list3 -> ${list3::class } " )
41
+ Log .i(TAG ," list4 -> ${list4::class } " )
42
+
43
+
44
+ Column (
45
+ modifier = Modifier
46
+ .fillMaxSize()
47
+ .verticalScroll(rememberScrollState())
48
+ ) {
49
+ // Text(modifier = Modifier.padding(start = 10.dp), color = Color.Red, text = "$list")
50
+ // Text(modifier = Modifier.padding(start = 10.dp), color = Color.Red, text = "${list4.value}")
51
+ // Text(modifier = Modifier.padding(start = 10.dp), color = Color.Blue, text = "$count")
52
+ ContentA (list)
53
+ ContentA (list2.toList())
54
+ ContentA (list3.toList())
55
+ ContentA (list4.value)
56
+ // ContentB(count)
57
+ // ContentC(list, count)
58
+
59
+ val context = LocalContext .current
60
+ Button (modifier = Modifier .padding(5 .dp), onClick = {
61
+ Toast .makeText(context, " you clicked me" , Toast .LENGTH_SHORT ).show()
62
+ count++
63
+ list.add(count.toString())
64
+ list2.add(count.toString())
65
+ list3.add(count.toString())
66
+ list4.value = ArrayList (list)
67
+ }) {
68
+ Text (text = " click me" )
69
+ }
70
+ }
71
+ }
72
+
73
+ @Composable
74
+ fun ContentA (list : List <String >) {
75
+ Log .d(TAG , " ContentA() called with: list = $list " )
76
+ Text (modifier = Modifier .padding(start = 10 .dp), color = Color .Red , text = " $list " )
77
+ }
78
+
79
+ @Composable
80
+ fun ContentB (num : Int ) {
81
+ Log .d(TAG , " ContentB() called with: num = $num " )
82
+ Text (modifier = Modifier .padding(start = 10 .dp), color = Color .Blue , text = num.toString())
83
+ }
84
+
85
+ @Composable
86
+ fun ContentD (list : List <String >) {
87
+ Log .d(TAG , " ContentD() called with: list = $list " )
88
+ Text (modifier = Modifier .padding(start = 10 .dp), color = Color .Red , text = " $list " )
89
+ }
90
+
91
+
92
+ @Composable
93
+ fun ContentC (list : ArrayList <String >, num : Int ) {
94
+ Log .d(TAG , " ContentC() called with: list = $list , num = $num " )
95
+ Column {
96
+ Text (modifier = Modifier .padding(start = 10 .dp), color = Color .Red , text = " $list " )
97
+ Text (modifier = Modifier .padding(start = 10 .dp), color = Color .Blue , text = num.toString())
98
+ }
99
+ }
0 commit comments