我使用下面庫:https://github.com/umano/AndroidSlidingUpPanel。Android的 - umano SlidingUpPanelLayout - 內容fitsSystemWindows
我想滾動時,顯示如下狀態欄的事情,我不能讓main_content(在SlidingUpPanelLayout的第一容器)適合屏幕。滾動時,我想在狀態欄下方顯示內容。
這是我的第一個XML配置:
<android.support.v4.widget.DrawerLayout
...
android:fitsSystemWindows="true">
<com.hnhh.app3.fragments.model.FitsSystemWindowsFrameLayout
...
android:fitsSystemWindows="true">
<!-- This is where I don't get what I want,
This container has always a padding top equals to the
status bar size, so it will always affect the direct
childs => main_content (my fragments container) -->
<com.sothree.slidinguppanel.SlidingUpPanelLayout
android:id="@+id/sliding_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true" // seems to not be supported
android:gravity="bottom"
...>
<!-- Main content - fragments placeholder -->
<com.hnhh.app3.fragments.model.FitsSystemWindowsFrameLayout
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true" // if the parent doesn't it will not either.
tools:background="@color/colorAccent" />
<!-- Panel -->
<FrameLayout
android:id="@+id/..."
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:fitsSystemWindows="false" />
</com.sothree.slidinguppanel.SlidingUpPanelLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom">
<com.hnhh.app3.widgets.BannerAdWrapper.../>
</FrameLayout>
</com.hnhh.app3.fragments.model.FitsSystemWindowsFrameLayout>
<include layout="@layout/navigation" />
</android.support.v4.widget.DrawerLayout>
我試圖與幾個父母爲sliding_layout但我不能設法得到所期望的行爲。 sliding_layout從不適合屏幕。
另一種我嘗試過的方法是將main_content替換爲一個空的ViewGroup,它必須match_paren(庫需要它),而main_content不在SlidingUpPanelLayout內部,但之前。
<android.support.v4.widget.DrawerLayout >
<com.hnhh.app3.fragments.model.FitsSystemWindowsFrameLayout>
<!-- NEW Main content - fragments placeholder -->
<com.hnhh.app3.fragments.model.FitsSystemWindowsFrameLayout />
<com.sothree.slidinguppanel.SlidingUpPanelLayout>
<!-- Replaced old main_content with empty -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<!-- Panel -->
<FrameLayout />
</com.sothree.slidinguppanel.SlidingUpPanelLayout>
<FrameLayout>
<com.hnhh.app3.widgets.BannerAdWrapper/>
</FrameLayout>
</com.hnhh.app3.fragments.model.FitsSystemWindowsFrameLayout>
<include layout="@layout/navigation" />
</android.support.v4.widget.DrawerLayout>
與第二個解決方案的事情是,我有一個空的容器,將攔截所有觸摸事件,我更不知道如何將它們傳遞的主要內容。
有誰得到了解決方法嗎?由於
感謝您的回覆,我複製你的代碼裏面SlidingUpPanelLayout,但我仍然得到填充頂部的SlidingUpPanelLayout是狀態欄的高度。我試圖玩幾個變量,如* windowTranslucentStatus *,* windowActionBarOverlay *,* windowContentOverlay *,但仍然。我可能在某個地方錯了。 – bengous