setOnApplyWindowInsetsListener() 未应用填充并调用 2 次

Nik*_*pin 9 android android-layout android-jetpack android-jetpack-navigation

我打电话setOnApplyWindowInsetsListener给我的视图添加填充/边距。我的 XML 包含android:fitsSystemWindows="true"

setOnApplyWindowInsetsListener被调用两次后(第二次插入 0)。

为什么 Android 返回 insets 两次并且第二次 insets 值为零?为什么当我将其设置为第一个值时,我的填充不适用?

代码:

drawer.setOnApplyWindowInsetsListener((v, insets) -> {
            profileButton.setPadding(
                    profileButton.getPaddingLeft(),
                    profileButton.getPaddingTop(),
                    insets.getSystemWindowInsetBottom(),
                    profileButton.getPaddingBottom()
            );
            Timber.d("Inset applied: %d", insets.getSystemWindowInsetBottom());
            return insets;
        });
Run Code Online (Sandbox Code Playgroud)

控制台输出:

D/MainActivity: Inset applied: 53
D/MainActivity: Inset applied: 0
Run Code Online (Sandbox Code Playgroud)