Skip to content

Commit 20d6ba6

Browse files
committed
feat: edgeToEdge 대응
1 parent d8064e7 commit 20d6ba6

4 files changed

Lines changed: 41 additions & 12 deletions

File tree

app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ dependencies {
5050
implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
5151
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
5252
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.9.2'
53+
implementation("androidx.activity:activity-ktx:1.10.1")
5354
testImplementation 'junit:junit:4.13.2'
5455
androidTestImplementation 'androidx.test.ext:junit:1.3.0'
5556
androidTestImplementation 'androidx.test.espresso:espresso-core:3.7.0'

app/src/main/java/com/dongyang/android/youdongknowme/standard/base/BaseActivity.kt

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package com.dongyang.android.youdongknowme.standard.base
22

3-
import android.content.Context
43
import android.os.Bundle
54
import android.text.Spannable
65
import android.text.SpannableStringBuilder
76
import android.text.style.ForegroundColorSpan
87
import android.widget.TextView
8+
import androidx.activity.enableEdgeToEdge
99
import androidx.appcompat.app.AppCompatActivity
10+
import androidx.core.view.ViewCompat
11+
import androidx.core.view.WindowInsetsCompat
12+
import androidx.core.view.updatePadding
1013
import androidx.databinding.DataBindingUtil
1114
import androidx.databinding.ViewDataBinding
1215
import com.dongyang.android.youdongknowme.ui.view.LoadingDialog
@@ -24,10 +27,21 @@ abstract class BaseActivity<T : ViewDataBinding, R : BaseViewModel> : AppCompatA
2427

2528
override fun onCreate(savedInstanceState: Bundle?) {
2629
super.onCreate(savedInstanceState)
30+
enableEdgeToEdge()
2731
binding = DataBindingUtil.setContentView(this, layoutResourceId)
2832
binding.lifecycleOwner = this
2933
setContentView(binding.root)
3034

35+
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
36+
val inset = insets.getInsets(WindowInsetsCompat.Type.systemBars())
37+
v.updatePadding(
38+
top = inset.top,
39+
bottom = inset.bottom,
40+
left = inset.left,
41+
right = inset.right,
42+
)
43+
insets
44+
}
3145
initStartView()
3246
initDataBinding()
3347
initAfterBinding()
@@ -36,7 +50,7 @@ abstract class BaseActivity<T : ViewDataBinding, R : BaseViewModel> : AppCompatA
3650
protected fun setSpanText(
3751
spanTextView: TextView,
3852
startIdx: Int,
39-
endIdx: Int
53+
endIdx: Int,
4054
) {
4155
SpannableStringBuilder(spanTextView.text).apply {
4256
setSpan(
@@ -90,4 +104,4 @@ abstract class BaseActivity<T : ViewDataBinding, R : BaseViewModel> : AppCompatA
90104

91105
abstract fun initAfterBinding()
92106

93-
}
107+
}

app/src/main/java/com/dongyang/android/youdongknowme/ui/view/main/MainActivity.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@ package com.dongyang.android.youdongknowme.ui.view.main
33
import android.content.Context
44
import android.content.Intent
55
import android.os.Bundle
6+
import androidx.activity.enableEdgeToEdge
67
import androidx.appcompat.app.AppCompatActivity
8+
import androidx.core.view.ViewCompat
9+
import androidx.core.view.WindowCompat
10+
import androidx.core.view.WindowInsetsCompat
11+
import androidx.core.view.updatePadding
712
import androidx.databinding.DataBindingUtil
813
import androidx.fragment.app.Fragment
914
import androidx.fragment.app.commit
@@ -24,9 +29,21 @@ class MainActivity : AppCompatActivity() {
2429

2530
override fun onCreate(savedInstanceState: Bundle?) {
2631
super.onCreate(savedInstanceState)
32+
enableEdgeToEdge()
2733
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
2834
binding.lifecycleOwner = this
2935
setContentView(binding.root)
36+
WindowCompat.setDecorFitsSystemWindows(window, false)
37+
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
38+
val inset = insets.getInsets(WindowInsetsCompat.Type.systemBars())
39+
v.updatePadding(
40+
top = inset.top,
41+
bottom = inset.bottom,
42+
left = inset.left,
43+
right = inset.right,
44+
)
45+
insets
46+
}
3047

3148
initDataBinding()
3249
initBottomNavigation()

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

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,16 @@
1919

2020
<com.google.android.material.bottomnavigation.BottomNavigationView
2121
android:id="@+id/main_nv_bottom"
22-
android:layout_width="0dp"
23-
android:layout_height="60dp"
24-
android:layout_gravity="bottom|center_horizontal"
22+
android:layout_width="match_parent"
23+
android:layout_height="wrap_content"
2524
android:elevation="30dp"
25+
android:outlineProvider="none"
26+
app:itemActiveIndicatorStyle="@null"
27+
app:itemIconSize="24dp"
2628
app:itemTextAppearanceActive="@style/BottomNavigationStyle"
2729
app:itemTextAppearanceInactive="@style/BottomNavigationStyle"
2830
app:labelVisibilityMode="labeled"
2931
app:layout_constraintBottom_toBottomOf="parent"
30-
app:layout_constraintEnd_toEndOf="parent"
31-
app:layout_constraintStart_toStartOf="parent"
32-
app:menu="@menu/menu_main">
33-
34-
</com.google.android.material.bottomnavigation.BottomNavigationView>
32+
app:menu="@menu/menu_main" />
3533
</androidx.constraintlayout.widget.ConstraintLayout>
36-
3734
</layout>

0 commit comments

Comments
 (0)