一组处理 在视图中以无边框方式显示内容 的组件,用于快速实现沉浸式布局效果。
implementation("androidx.core:core-ktx:1.17.0")
implementation("androidx.activity:activity-ktx:1.12.0")
implementation("io.github.takwolf.android.insetswidget:insetswidget:0.0.1")
// 可选,为 `ConstraintLayout` 添加支持。
implementation("androidx.constraintlayout:constraintlayout:2.2.1")
implementation("io.github.takwolf.android.insetswidget:constraintlayout:0.0.1")在 Activity 中启用「无边框模式」:
class SomeActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_some)
}
}最后,确保不要在布局中使用 android:fitsSystemWindows="true" 属性。
该属性会拦截 WindowInsets 事件,从而导致组件失效。
包括:
InsetsViewInsetsSpace
这个类型的组件尺寸会自动适配窗口附加物类型的尺寸。例如:
<com.takwolf.android.insetswidget.InsetsView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:isw_insetsType="statusBars" />包括:
InsetsFrameLayoutInsetsLinearLayoutInsetsNestedScrollViewInsetsConstraintLayout
这个类型的组件,会自动添加 Padding 来适配窗口附加物类型的尺寸。也可以额外配置颜色。例如:
<com.takwolf.android.insetswidget.InsetsLinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:isw_insetsType="statusBars|navigationBars"
app:isw_insetsPaddingBottom="false"
app:isw_insetsColorTop="@color/translucent_black"
app:isw_insetsColorBottom="@color/translucent_black">
<YourView />
</com.takwolf.android.insetswidget.InsetsLinearLayout>