コンテンツfitsSystemWindows:https://github.com/umano/AndroidSlidingUpPanel。アンドロイド - umano SlidingUpPanelLayout - 私は次のライブラリを使用しています
は私がスクロールしたときに、ステータスバーの下に物事を表示したいと私は画面に合わせ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をmatch_paren(ライブラリはそうしたい)とmain_contentをSlidingUpPanelLayoutの中ではなく、前にある空のViewGroupに置き換えることです。第二の溶液と
<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