1+ package com.example.constraintlayout
2+
3+ import androidx.compose.foundation.background
4+ import androidx.compose.foundation.layout.*
5+ import androidx.compose.material.Button
6+ import androidx.compose.material.MaterialTheme
7+ import androidx.compose.material.Text
8+ import androidx.compose.runtime.*
9+ import androidx.compose.ui.Modifier
10+ import androidx.compose.ui.graphics.Color
11+ import androidx.compose.ui.layout.layoutId
12+ import androidx.compose.ui.res.stringResource
13+ import androidx.compose.ui.tooling.preview.Preview
14+ import androidx.compose.ui.unit.dp
15+ import androidx.constraintlayout.compose.*
16+
17+ @Preview(group = " new5" )
18+ @Composable
19+ public fun ExampleLayout2 () {
20+ ConstraintLayout (
21+ ConstraintSet {
22+ val center = createRefFor(" center" )
23+ val h1 = createRefFor(" h1" )
24+ val h2 = createRefFor(" h2" )
25+ val h3 = createRefFor(" h3" )
26+ val h4 = createRefFor(" h4" )
27+ val h5 = createRefFor(" h5" )
28+ val h6 = createRefFor(" h6" )
29+ val h7 = createRefFor(" h7" )
30+ val h8 = createRefFor(" h8" )
31+ val h9 = createRefFor(" h9" )
32+ val h10 = createRefFor(" h10" )
33+ val h11 = createRefFor(" h11" )
34+ val h12 = createRefFor(" h12" )
35+ constrain(center) {
36+ centerTo(parent)
37+ }
38+ constrain(h1) {
39+ circular(parent, 30f , 100 .dp)
40+ }
41+ constrain(h2) {
42+ circular(parent, 60f , 100 .dp)
43+ }
44+ constrain(h3) {
45+ circular(parent, 90f , 100 .dp)
46+ }
47+ constrain(h4) {
48+ circular(parent, 120f , 100 .dp)
49+ }
50+ constrain(h5) {
51+ circular(parent, 150f , 100 .dp)
52+ }
53+ constrain(h6) {
54+ circular(parent, 180f , 100 .dp)
55+ }
56+ constrain(h7) {
57+ circular(parent, 210f , 100 .dp)
58+ }
59+ constrain(h8) {
60+ circular(parent, 240f , 100 .dp)
61+ }
62+ constrain(h9) {
63+ circular(parent, 270f , 100 .dp)
64+ }
65+ constrain(h10) {
66+ circular(parent, 300f , 100 .dp)
67+ }
68+ constrain(h11) {
69+ circular(parent, 330f , 100 .dp)
70+ }
71+ constrain(h12) {
72+ circular(parent, 0f , 100 .dp)
73+ }
74+ },
75+ modifier = Modifier
76+ .fillMaxSize()
77+ ) {
78+ Text (modifier = Modifier .layoutId(" center" ), text = " C" )
79+ Text (modifier = Modifier .layoutId(" h1" ), text = " 1" )
80+ Text (modifier = Modifier .layoutId(" h2" ), text = " 2" )
81+ Text (modifier = Modifier .layoutId(" h3" ), text = " 3" )
82+ Text (modifier = Modifier .layoutId(" h4" ), text = " 4" )
83+ Text (modifier = Modifier .layoutId(" h5" ), text = " 5" )
84+ Text (modifier = Modifier .layoutId(" h6" ), text = " 6" )
85+ Text (modifier = Modifier .layoutId(" h7" ), text = " 7" )
86+ Text (modifier = Modifier .layoutId(" h8" ), text = " 8" )
87+ Text (modifier = Modifier .layoutId(" h9" ), text = " 9" )
88+ Text (modifier = Modifier .layoutId(" h10" ), text = " 10" )
89+ Text (modifier = Modifier .layoutId(" h11" ), text = " 11" )
90+ Text (modifier = Modifier .layoutId(" h12" ), text = " 12" )
91+ }
92+ }
93+
94+ @Preview(group = " new2" )
95+ @Composable
96+ public fun ExampleLayout3 () {
97+ ConstraintLayout (modifier = Modifier
98+ .fillMaxSize()){
99+ val (center, h1, h2, h3, h4, h5, h6, h7, h8, h9, h10, h11, h12) = createRefs()
100+
101+ Text (modifier = Modifier .constrainAs(center) {
102+ centerTo(parent)
103+ }, text = " C" )
104+ Text (modifier = Modifier .constrainAs(h1) {
105+ circular(parent, 30f , 100 .dp)
106+ }, text = " 1" )
107+ Text (modifier = Modifier .constrainAs(h2) {
108+ circular(parent, 60f , 100 .dp)
109+ }, text = " 2" )
110+ Text (modifier = Modifier .constrainAs(h3) {
111+ circular(parent, 90f , 100 .dp)
112+ }, text = " 3" )
113+ Text (modifier = Modifier .constrainAs(h4) {
114+ circular(parent, 120f , 100 .dp)
115+ }, text = " 4" )
116+ Text (modifier = Modifier .constrainAs(h5) {
117+ circular(parent, 150f , 100 .dp)
118+ }, text = " 5" )
119+ Text (modifier = Modifier .constrainAs(h6) {
120+ circular(parent, 180f , 100 .dp)
121+ }, text = " 6" )
122+ Text (modifier = Modifier .constrainAs(h7) {
123+ circular(parent, 210f , 100 .dp)
124+ }, text = " 7" )
125+ Text (modifier = Modifier .constrainAs(h8) {
126+ circular(parent, 240f , 100 .dp)
127+ }, text = " 8" )
128+ Text (modifier = Modifier .constrainAs(h9) {
129+ circular(parent, 270f , 100 .dp)
130+ }, text = " 9" )
131+ Text (modifier = Modifier .constrainAs(h10) {
132+ circular(parent, 300f , 100 .dp)
133+ }, text = " 10" )
134+ Text (modifier = Modifier .constrainAs(h11) {
135+ circular(parent, 330f , 100 .dp)
136+ }, text = " 11" )
137+ Text (modifier = Modifier .constrainAs(h12) {
138+ circular(parent, 0f , 100 .dp)
139+ }, text = " 12" )
140+ }
141+ }
142+
143+ @Preview(group = " new4" )
144+ @Composable
145+ public fun ExampleLayout4 () {
146+ ConstraintLayout (
147+ ConstraintSet ("""
148+ {
149+ center: {
150+ center: 'parent'
151+ },
152+ h1: { circular: ['center', 30, 100] },
153+ h2: { circular: ['center', 60, 100] },
154+ h3: { circular: ['center', 90, 100] },
155+ h4: { circular: ['center', 120, 100] },
156+ h5: { circular: ['center', 150, 100] },
157+ h6: { circular: ['center', 180, 100] },
158+ h7: { circular: ['center', 210, 100] },
159+ h8: { circular: ['center', 240, 100] },
160+ h9: { circular: ['center', 270, 100] },
161+ h10: { circular: ['center', 300, 100] },
162+ h11: { circular: ['center', 330, 100] },
163+ h12: { circular: ['center', 0, 100] }
164+ }
165+ """ ),
166+ modifier = Modifier
167+ .fillMaxSize()
168+ ) {
169+ Text (modifier = Modifier .layoutId(" center" ), text = " C" )
170+ Text (modifier = Modifier .layoutId(" h1" ), text = " 1" )
171+ Text (modifier = Modifier .layoutId(" h2" ), text = " 2" )
172+ Text (modifier = Modifier .layoutId(" h3" ), text = " 3" )
173+ Text (modifier = Modifier .layoutId(" h4" ), text = " 4" )
174+ Text (modifier = Modifier .layoutId(" h5" ), text = " 5" )
175+ Text (modifier = Modifier .layoutId(" h6" ), text = " 6" )
176+ Text (modifier = Modifier .layoutId(" h7" ), text = " 7" )
177+ Text (modifier = Modifier .layoutId(" h8" ), text = " 8" )
178+ Text (modifier = Modifier .layoutId(" h9" ), text = " 9" )
179+ Text (modifier = Modifier .layoutId(" h10" ), text = " 10" )
180+ Text (modifier = Modifier .layoutId(" h11" ), text = " 11" )
181+ Text (modifier = Modifier .layoutId(" h12" ), text = " 12" )
182+ }
183+ }
184+
185+ @Preview(group = " new2" )
186+ @Composable
187+ public fun ExampleLayout5 () {
188+ ConstraintLayout (modifier = Modifier
189+ .fillMaxSize()){
190+ val center = createRef()
191+ Text (modifier = Modifier .constrainAs(center) {
192+ centerTo(parent)
193+ }, text = " C" )
194+ for (i in 0 until 12 ) {
195+ var h = createRef()
196+ Text (modifier = Modifier .constrainAs(h) {
197+ circular(parent, 30f + i * 30f , 100 .dp)
198+ }, text = " ${i+ 1 } " )
199+ }
200+ }
201+ }
202+
203+ @Preview(group = " new6" )
204+ @Composable
205+ public fun ExampleLayout6 () {
206+ ConstraintLayout (modifier = Modifier
207+ .fillMaxSize()){
208+ val center = createRef()
209+ Text (modifier = Modifier .constrainAs(center) {
210+ centerTo(parent)
211+ }, text = " C" )
212+ for (i in 0 until 12 ) {
213+ var h = createRef()
214+ Text (modifier = Modifier .constrainAs(h) {
215+ circular(parent, 30f + i * 30f , 100 .dp)
216+ }, text = " ${i+ 1 } " )
217+ }
218+ }
219+ }
220+
221+ @Preview(group = " new7" )
222+ @Composable
223+ public fun ExampleLayout7 () {
224+ var baseConstraintSet = """
225+ {
226+ Variables: {
227+ angle: { from: 0, step: 10 },
228+ rotation: { from: 'startRotation', step: 10 },
229+ distance: 100,
230+ mylist: { tag: 'box' }
231+ },
232+ Generate: {
233+ mylist: {
234+ width: 200,
235+ height: 40,
236+ circular: ['parent', 'angle', 'distance'],
237+ pivotX: 0.1,
238+ pivotY: 0.1,
239+ translationX: 225,
240+ rotationZ: 'rotation'
241+ }
242+ }
243+ }
244+ """
245+
246+ ConstraintLayout (
247+ ConstraintSet ("""
248+ {
249+ Variables: {
250+ list: { from: 1, to: 12, prefix: 'h' },
251+ angle: { from: 0, step: 30 }
252+ },
253+ Generate: {
254+ list: { circular: ['parent', 'angle', 100] }
255+ },
256+ center: { center: 'parent' }
257+ }
258+ """ ),
259+ modifier = Modifier .fillMaxSize()){
260+ Text (modifier = Modifier .layoutId(" center" ), text = " C" )
261+
262+ for (i in 0 until 12 ) {
263+ Text (modifier = Modifier .layoutId(" h${i+ 1 } " ),
264+ text = " ${i+ 1 } " )
265+ }
266+ }
267+ }
0 commit comments