app/src/main/java/me/zhanghai/android/douya/ui/FullscreenNavigationView.java

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/*
 * Copyright (c) 2015 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com>
 * All Rights Reserved.
 */

package me.zhanghai.android.douya.ui;

import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.support.design.widget.NavigationView;
import android.util.AttributeSet;
import android.view.View;
import android.view.WindowInsets;

/**
 * A {@link NavigationView} that draws no scrim and dispatches window insets correctly.
 * <p>
 * {@code android:fitsSystemWindows="true"} will be ignored.
 * </p>
 */
public class FullscreenNavigationView extends NavigationView {

    public FullscreenNavigationView(Context context) {
        super(context);

        init();
    }

    public FullscreenNavigationView(Context context, AttributeSet attrs) {
        super(context, attrs);

        init();
    }

    public FullscreenNavigationView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);

        init();
    }

    @TargetApi(Build.VERSION_CODES.KITKAT_WATCH)
    private void init() {

        // Required to revert the value of fitsSystemWindows set in super constructor.
        setFitsSystemWindows(false);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
            setOnApplyWindowInsetsListener(new OnApplyWindowInsetsListener() {
                @Override
                @TargetApi(Build.VERSION_CODES.KITKAT_WATCH)
                public WindowInsets onApplyWindowInsets(View view, WindowInsets insets) {
                    if (getHeaderCount() == 0) {
                        return FullscreenNavigationView.this.onApplyWindowInsets(insets);
                    }
                    return getHeaderView(0).onApplyWindowInsets(insets);
                }
            });
        }
    }
后面还有 1 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。