Skip to content

Commit 2a6b82b

Browse files
Merge pull request #242 from MihaiCristianCondrea/codex/optimize-android-xml-layouts-for-performance
Optimize scroll layouts
2 parents 7072f58 + 0e60b30 commit 2a6b82b

File tree

4 files changed

+50
-86
lines changed

4 files changed

+50
-86
lines changed

app/src/main/res/layout/activity_android_history.xml

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,64 +6,57 @@
66
android:layout_width="match_parent"
77
android:layout_height="match_parent">
88

9-
<androidx.constraintlayout.widget.ConstraintLayout
9+
<androidx.appcompat.widget.LinearLayoutCompat
1010
android:layout_width="match_parent"
11-
android:layout_height="wrap_content">
11+
android:layout_height="wrap_content"
12+
android:orientation="vertical"
13+
android:paddingHorizontal="24dp"
14+
android:paddingTop="24dp"
15+
android:paddingBottom="24dp">
1216

1317
<com.google.android.material.textview.MaterialTextView
1418
android:id="@+id/text_view_history"
1519
style="@style/TextAppearance.Material3.HeadlineLarge"
1620
android:layout_width="wrap_content"
1721
android:layout_height="wrap_content"
18-
android:layout_margin="24dp"
1922
android:text="@string/history"
20-
android:textColor="?attr/colorSecondary"
21-
app:layout_constraintStart_toStartOf="parent"
22-
app:layout_constraintTop_toTopOf="parent" />
23+
android:textColor="?attr/colorSecondary" />
2324

2425
<com.google.android.material.textview.MaterialTextView
2526
android:id="@+id/text_view_android_history"
2627
android:layout_width="match_parent"
2728
android:layout_height="wrap_content"
28-
android:layout_margin="24dp"
29+
android:layout_marginTop="24dp"
2930
android:text="@string/summary_android_history"
30-
app:layout_constraintTop_toBottomOf="@id/text_view_history"
3131
tools:ignore="VisualLintLongText" />
3232

3333
<com.d4rk.androidtutorials.java.ads.views.NativeAdBannerView
3434
android:id="@+id/ad_view"
3535
android:layout_width="match_parent"
3636
android:layout_height="wrap_content"
37-
android:layout_margin="24dp"
38-
app:layout_constraintTop_toBottomOf="@id/text_view_android_history" />
37+
android:layout_marginTop="24dp" />
3938

4039
<com.google.android.material.textview.MaterialTextView
4140
android:id="@+id/text_view_features"
4241
style="@style/TextAppearance.Material3.HeadlineLarge"
4342
android:layout_width="wrap_content"
4443
android:layout_height="wrap_content"
45-
android:layout_margin="24dp"
44+
android:layout_marginTop="24dp"
4645
android:text="@string/features"
47-
android:textColor="?attr/colorSecondary"
48-
app:layout_constraintStart_toStartOf="parent"
49-
app:layout_constraintTop_toBottomOf="@id/ad_view" />
46+
android:textColor="?attr/colorSecondary" />
5047

5148
<com.google.android.material.textview.MaterialTextView
5249
android:id="@+id/text_view_android_features"
5350
android:layout_width="match_parent"
5451
android:layout_height="wrap_content"
55-
android:layout_margin="24dp"
52+
android:layout_marginTop="24dp"
5653
android:text="@string/summary_android_features"
57-
app:layout_constraintTop_toBottomOf="@id/text_view_features"
5854
tools:ignore="VisualLintLongText" />
5955

6056
<com.d4rk.androidtutorials.java.ads.views.NativeAdBannerView
6157
android:id="@+id/ad_view_bottom"
6258
android:layout_width="match_parent"
6359
android:layout_height="wrap_content"
64-
android:layout_margin="24dp"
65-
app:layout_constraintEnd_toEndOf="parent"
66-
app:layout_constraintStart_toStartOf="parent"
67-
app:layout_constraintTop_toBottomOf="@id/text_view_android_features" />
68-
</androidx.constraintlayout.widget.ConstraintLayout>
69-
</me.zhanghai.android.fastscroll.FastScrollScrollView>
60+
android:layout_marginTop="24dp" />
61+
</androidx.appcompat.widget.LinearLayoutCompat>
62+
</me.zhanghai.android.fastscroll.FastScrollScrollView>

app/src/main/res/layout/activity_android_sdk.xml

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,24 @@
66
android:layout_width="match_parent"
77
android:layout_height="match_parent">
88

9-
<androidx.constraintlayout.widget.ConstraintLayout
9+
<androidx.appcompat.widget.LinearLayoutCompat
1010
android:layout_width="match_parent"
1111
android:layout_height="wrap_content"
12-
android:padding="24dp"
13-
app:layout_constraintBottom_toTopOf="@+id/tableRow"
14-
app:layout_constraintTop_toTopOf="@+id/tableRow">
12+
android:orientation="vertical"
13+
android:padding="24dp">
1514

1615
<com.google.android.material.textview.MaterialTextView
1716
android:id="@+id/text_view_android_sdks_summary"
1817
android:layout_width="wrap_content"
1918
android:layout_height="wrap_content"
2019
android:text="@string/summary_sdk"
21-
app:layout_constraintStart_toStartOf="parent"
22-
app:layout_constraintTop_toTopOf="parent"
2320
tools:ignore="VisualLintLongText" />
2421

2522
<com.d4rk.androidtutorials.java.ads.views.NativeAdBannerView
2623
android:id="@+id/ad_view"
2724
android:layout_width="match_parent"
2825
android:layout_height="wrap_content"
29-
android:layout_marginTop="24dp"
30-
app:layout_constraintTop_toBottomOf="@id/text_view_android_sdks_summary" />
26+
android:layout_marginTop="24dp" />
3127

3228
<com.google.android.material.textview.MaterialTextView
3329
android:id="@+id/text_view_android"
@@ -36,17 +32,14 @@
3632
android:layout_height="wrap_content"
3733
android:paddingTop="24dp"
3834
android:text="@string/android_versions"
39-
app:layout_constraintStart_toStartOf="parent"
40-
app:layout_constraintTop_toBottomOf="@id/ad_view"
4135
tools:ignore="HardcodedText,TextContrastCheck" />
4236

4337
<com.google.android.material.card.MaterialCardView
4438
android:id="@+id/card_view_table_layout"
4539
style="@style/Widget.Material3.CardView.Elevated"
4640
android:layout_width="match_parent"
47-
android:layout_height="match_parent"
48-
app:cardCornerRadius="24dp"
49-
app:layout_constraintTop_toBottomOf="@id/text_view_android">
41+
android:layout_height="wrap_content"
42+
app:cardCornerRadius="24dp">
5043

5144
<TableLayout
5245
android:id="@+id/table_layout"
@@ -64,7 +57,6 @@
6457
android:id="@+id/ad_view_bottom"
6558
android:layout_width="match_parent"
6659
android:layout_height="wrap_content"
67-
android:layout_marginTop="24dp"
68-
app:layout_constraintTop_toBottomOf="@id/card_view_table_layout" />
69-
</androidx.constraintlayout.widget.ConstraintLayout>
70-
</me.zhanghai.android.fastscroll.FastScrollScrollView>
60+
android:layout_marginTop="24dp" />
61+
</androidx.appcompat.widget.LinearLayoutCompat>
62+
</me.zhanghai.android.fastscroll.FastScrollScrollView>

app/src/main/res/layout/activity_android_start_project.xml

Lines changed: 24 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -26,40 +26,36 @@
2626
app:layout_constraintStart_toStartOf="parent"
2727
app:layout_constraintTop_toBottomOf="@id/top_app_bar">
2828

29-
<androidx.constraintlayout.widget.ConstraintLayout
29+
<androidx.appcompat.widget.LinearLayoutCompat
3030
android:layout_width="match_parent"
31-
android:layout_height="wrap_content">
31+
android:layout_height="wrap_content"
32+
android:orientation="vertical"
33+
android:paddingHorizontal="24dp"
34+
android:paddingTop="24dp"
35+
android:paddingBottom="24dp">
3236

3337
<com.google.android.material.textview.MaterialTextView
3438
android:id="@+id/text_view_first_step"
3539
android:layout_width="wrap_content"
3640
android:layout_height="wrap_content"
37-
android:layout_margin="24dp"
3841
android:text="@string/step1"
3942
android:textAppearance="@style/TextAppearance.TitleLargeEmphasized"
40-
android:textColor="?attr/colorSecondary"
41-
app:layout_constraintStart_toStartOf="parent"
42-
app:layout_constraintTop_toTopOf="parent" />
43+
android:textColor="?attr/colorSecondary" />
4344

4445
<com.google.android.material.textview.MaterialTextView
4546
android:id="@+id/text_view_first_step_summary"
4647
android:layout_width="match_parent"
4748
android:layout_height="wrap_content"
48-
android:layout_margin="24dp"
49+
android:layout_marginTop="24dp"
4950
android:text="@string/summary_first_step"
50-
android:textAppearance="@style/TextAppearance.BodyLargeEmphasized"
51-
app:layout_constraintStart_toStartOf="parent"
52-
app:layout_constraintTop_toBottomOf="@id/text_view_first_step" />
51+
android:textAppearance="@style/TextAppearance.BodyLargeEmphasized" />
5352

5453
<com.google.android.material.card.MaterialCardView
5554
android:id="@+id/card_view_first_step"
5655
style="@style/Widget.Material3.CardView.Elevated"
5756
android:layout_width="match_parent"
5857
android:layout_height="256dp"
59-
android:layout_margin="24dp"
60-
app:layout_constraintEnd_toEndOf="parent"
61-
app:layout_constraintStart_toStartOf="parent"
62-
app:layout_constraintTop_toBottomOf="@id/text_view_first_step_summary"
58+
android:layout_marginTop="24dp"
6359
app:shapeAppearanceOverlay="@style/ShapeTokens.Clover">
6460

6561
<androidx.appcompat.widget.AppCompatImageView
@@ -76,39 +72,31 @@
7672
android:layout_height="wrap_content"
7773
android:layout_marginTop="24dp"
7874
ads:adSize="MEDIUM_RECTANGLE"
79-
ads:adUnitId="@string/ad_banner_unit_id"
80-
app:layout_constraintTop_toBottomOf="@id/card_view_first_step" />
75+
ads:adUnitId="@string/ad_banner_unit_id" />
8176

8277
<com.google.android.material.textview.MaterialTextView
8378
android:id="@+id/text_view_second_step"
8479
android:layout_width="wrap_content"
8580
android:layout_height="wrap_content"
86-
android:layout_margin="24dp"
81+
android:layout_marginTop="24dp"
8782
android:text="@string/step2"
8883
android:textAppearance="@style/TextAppearance.TitleLargeEmphasized"
89-
android:textColor="?attr/colorSecondary"
90-
app:layout_constraintStart_toStartOf="parent"
91-
app:layout_constraintTop_toBottomOf="@id/ad_view" />
84+
android:textColor="?attr/colorSecondary" />
9285

9386
<com.google.android.material.textview.MaterialTextView
9487
android:id="@+id/text_view_second_step_summary"
9588
android:layout_width="match_parent"
9689
android:layout_height="wrap_content"
97-
android:layout_margin="24dp"
90+
android:layout_marginTop="24dp"
9891
android:text="@string/summary_second_step"
99-
android:textAppearance="@style/TextAppearance.BodyLargeEmphasized"
100-
app:layout_constraintStart_toStartOf="parent"
101-
app:layout_constraintTop_toBottomOf="@id/text_view_second_step" />
92+
android:textAppearance="@style/TextAppearance.BodyLargeEmphasized" />
10293

10394
<com.google.android.material.card.MaterialCardView
10495
android:id="@+id/card_view_second_step"
10596
style="@style/Widget.Material3.CardView.Elevated"
10697
android:layout_width="match_parent"
10798
android:layout_height="256dp"
108-
android:layout_margin="24dp"
109-
app:layout_constraintEnd_toEndOf="parent"
110-
app:layout_constraintStart_toStartOf="parent"
111-
app:layout_constraintTop_toBottomOf="@id/text_view_second_step_summary"
99+
android:layout_marginTop="24dp"
112100
app:shapeAppearanceOverlay="@style/ShapeTokens.Clover">
113101

114102
<androidx.appcompat.widget.AppCompatImageView
@@ -123,32 +111,25 @@
123111
android:id="@+id/text_view_third_step"
124112
android:layout_width="wrap_content"
125113
android:layout_height="wrap_content"
126-
android:layout_margin="24dp"
114+
android:layout_marginTop="24dp"
127115
android:text="@string/step3"
128116
android:textAppearance="@style/TextAppearance.TitleLargeEmphasized"
129-
android:textColor="?attr/colorSecondary"
130-
app:layout_constraintStart_toStartOf="parent"
131-
app:layout_constraintTop_toBottomOf="@id/card_view_second_step" />
117+
android:textColor="?attr/colorSecondary" />
132118

133119
<com.google.android.material.textview.MaterialTextView
134120
android:id="@+id/text_view_third_step_summary"
135121
android:layout_width="match_parent"
136122
android:layout_height="wrap_content"
137-
android:layout_margin="24dp"
123+
android:layout_marginTop="24dp"
138124
android:text="@string/summary_third_step"
139-
android:textAppearance="@style/TextAppearance.BodyLargeEmphasized"
140-
app:layout_constraintStart_toStartOf="parent"
141-
app:layout_constraintTop_toBottomOf="@id/text_view_third_step" />
125+
android:textAppearance="@style/TextAppearance.BodyLargeEmphasized" />
142126

143127
<com.google.android.material.card.MaterialCardView
144128
android:id="@+id/card_view_third_step"
145129
style="@style/Widget.Material3.CardView.Elevated"
146130
android:layout_width="match_parent"
147131
android:layout_height="256dp"
148-
android:layout_margin="24dp"
149-
app:layout_constraintEnd_toEndOf="parent"
150-
app:layout_constraintStart_toStartOf="parent"
151-
app:layout_constraintTop_toBottomOf="@id/text_view_third_step_summary"
132+
android:layout_marginTop="24dp"
152133
app:shapeAppearanceOverlay="@style/ShapeTokens.Clover">
153134

154135
<androidx.appcompat.widget.AppCompatImageView
@@ -163,7 +144,6 @@
163144
android:id="@+id/lottie_animation"
164145
android:layout_width="match_parent"
165146
android:layout_height="match_parent"
166-
app:layout_constraintTop_toBottomOf="@id/card_view_third_step"
167147
app:lottie_autoPlay="true"
168148
app:lottie_loop="false"
169149
app:lottie_rawRes="@raw/anim_programmer"
@@ -173,10 +153,9 @@
173153
android:id="@+id/ad_view_bottom"
174154
android:layout_width="match_parent"
175155
android:layout_height="wrap_content"
176-
android:layout_margin="24dp"
156+
android:layout_marginTop="24dp"
177157
ads:adSize="LARGE_BANNER"
178-
ads:adUnitId="@string/ad_banner_unit_id"
179-
app:layout_constraintTop_toBottomOf="@id/lottie_animation" />
180-
</androidx.constraintlayout.widget.ConstraintLayout>
158+
ads:adUnitId="@string/ad_banner_unit_id" />
159+
</androidx.appcompat.widget.LinearLayoutCompat>
181160
</me.zhanghai.android.fastscroll.FastScrollScrollView>
182161
</androidx.constraintlayout.widget.ConstraintLayout>

app/src/main/res/layout/activity_clock.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
<androidx.appcompat.widget.LinearLayoutCompat
1717
android:layout_width="match_parent"
18-
android:layout_height="match_parent"
18+
android:layout_height="wrap_content"
1919
android:orientation="vertical">
2020

2121
<com.google.android.material.textview.MaterialTextView
@@ -106,4 +106,4 @@
106106
app:layout_constraintBottom_toBottomOf="parent"
107107
app:layout_constraintEnd_toEndOf="parent"
108108
tools:targetApi="26" />
109-
</androidx.constraintlayout.widget.ConstraintLayout>
109+
</androidx.constraintlayout.widget.ConstraintLayout>

0 commit comments

Comments
 (0)