CoordinatorLayoutを使用してGoogleの最新のデザイントリックを実装しようとしていますが、スクロールと視差効果に問題があります。
アクティビティが表示された後、すべて問題ないように見えますが、スクロールしようとすると問題が発生します。下部のビューが正しく展開されていないようで、上にスクロールすると、下に空のスペースが表示されます。底面図は、上面図とナビゲーションバーの間の最初の表示でどれだけ大きいかだけが大きいようです。
これは次のようになります。
関連コード:
<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<CoordinatorLayout
Android:layout_height="match_parent"
Android:layout_width="match_parent">
<AppBarLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<CollapsingToolbarLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:expandedTitleMarginStart="72dp"
app:expandedTitleMarginEnd="16dp">
<ImageView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:layout_collapseMode="parallax"/>
</CollapsingToolbarLayout>
</AppBarLayout>
<ViewPager
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</CoordinatorLayout>
</FrameLayout>
この奇妙な動作はランダムに発生します。下部ビューは通常どおりスクロール可能で、その空きスペースが表示されない場合があります。私は何が間違っているのですか?ありがとう。
私は同じ問題を抱えていましたが、この問題のあるすべてのレイアウトに
Android:fitsSystemWindows="true"
coordinatorLayoutで
それを削除すると、どこでも私の問題が修正されました。
Toolbar
をあなたのCollapsingToolbarLayout
内に追加してみてください。
<Android.support.design.widget.CollapsingToolbarLayout>
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
Android:minHeight="?attr/actionBarSize"
app:layout_collapseMode="pin"/>
...
</Android.support.design.widget.CollapsingToolbarLayout>
また、追加してみてください
Android:minHeight = "?attr/actionBarSize"
Toolbar
CollapsingToolbarLayout
およびAppBarLayout
へ
ナビゲーションフラグの理由で、Android:fitsSystemWindows = "true"は私のニーズを満たしていませんでした。
少し遊んだ後、0dphieghtで別のCollapsingToolbarLayoutを追加するとうまくいくことがわかりました。
<Android.support.design.widget.CollapsingToolbarLayout
Android:layout_width="match_parent"
Android:layout_height="0dp"
app:layout_scrollFlags="scroll|snap" />