xmuSistone / VegaLayoutManager

√A customized LayoutManager - fade and shrink the head itemView when scrolling.
1.85k stars 232 forks source link

多餘的 #11

Closed tenSunFree closed 7 years ago

tenSunFree commented 7 years ago

2017-09-28_202349

紅框內的代碼, 似乎是多餘的, 有或者沒有 都不會影響到畫面呈現的效果 還是我哪裡 理解錯了?

xmuSistone commented 7 years ago

不会影响画面呈现的效果。没遇到什么问题的话,你也可以暂时去除SYSTEM_UI_FLAG_LAYOUT_STABLE。 安卓的doc文档是这么提及SYSTEM_UI_FLAG_LAYOUT_STABLE的:

/**
     * Flag for {@link #setSystemUiVisibility(int)}: When using other layout
     * flags, we would like a stable view of the content insets given to
     * {@link #fitSystemWindows(Rect)}.  This means that the insets seen there
     * will always represent the worst case that the application can expect
     * as a continuous state.  In the stock Android UI this is the space for
     * the system bar, nav bar, and status bar, but not more transient elements
     * such as an input method.
     *
     * The stable layout your UI sees is based on the system UI modes you can
     * switch to.  That is, if you specify {@link #SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN}
     * then you will get a stable layout for changes of the
     * {@link #SYSTEM_UI_FLAG_FULLSCREEN} mode; if you specify
     * {@link #SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN} and
     * {@link #SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION}, then you can transition
     * to {@link #SYSTEM_UI_FLAG_FULLSCREEN} and {@link #SYSTEM_UI_FLAG_HIDE_NAVIGATION}
     * with a stable layout.  (Note that you should avoid using
     * {@link #SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION} by itself.)
     *
     * If you have set the window flag {@link WindowManager.LayoutParams#FLAG_FULLSCREEN}
     * to hide the status bar (instead of using {@link #SYSTEM_UI_FLAG_FULLSCREEN}),
     * then a hidden status bar will be considered a "stable" state for purposes
     * here.  This allows your UI to continually hide the status bar, while still
     * using the system UI flags to hide the action bar while still retaining
     * a stable layout.  Note that changing the window fullscreen flag will never
     * provide a stable layout for a clean transition.
     *
     * <p>If you are using ActionBar in
     * overlay mode with {@link Window#FEATURE_ACTION_BAR_OVERLAY
     * Window.FEATURE_ACTION_BAR_OVERLAY}, this flag will also impact the
     * insets it adds to those given to the application.
     */
    public static final int SYSTEM_UI_FLAG_LAYOUT_STABLE = 0x00000100;

文档有些生涩,大致意思应该是要稳定layout布局,以防止content内容区域变化所导致的不稳定性。国内的大多技术博客(郭神),也大多建议添加上这个FLAG,所以我就加上了。如果对于你的app而言,没什么影响的话,就去除吧。