我正在使用新的Android设计库&自动隐藏return findCoord(left, right);
功能。目前滚动上的自动隐藏工作正常。但是遇到这个问题,请看下面
如您所见,Toolbar
被推下位。
代码:
FloatingActionButton
FabSyle:
<android.support.design.widget.CoordinatorLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@android:id/home"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.v7.widget
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:src="@drawable/ic_shuffle"
style="@style/FabStyle"/>
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
我也试过添加<style name="FabStyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_gravity">bottom|end</item>
<item name="android:layout_marginEnd">@dimen/activity_horizontal_margin</item>
<item name="android:layout_marginBottom">@dimen/activity_vertical_margin</item>
<item name="borderWidth">0dp</item>
<item name="elevation">@dimen/fabElevation</item>
<item name="pressedTranslationZ">@dimen/fabPressedZ</item>
</style>
&amp; margin
底部有效,但当列表滚动时,它会过高。
最好的事情是当我使用padding
进行游戏时停止自动隐藏滚动AppBarLayout
,然后Toolbar
看起来不错。
答案 0 :(得分:7)
AppBarLayout
希望成为CoordinatorLayout
正常工作的第一个孩子。 This article注意到:
根据官方Google docs,
AppBarLayout
目前预计将成为第一个嵌套在CoordinatorLayout
内的儿童。
但显然自那时起文档发生了变化(可能限制不再适用了?我不确定)。尝试将AppBarLayout
移动到第一个位置,如下所示:
<android.support.design.widget.CoordinatorLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@android:id/home"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:src="@drawable/ic_shuffle"
style="@style/FabStyle"/>
</android.support.design.widget.CoordinatorLayout>
答案 1 :(得分:3)
你需要像这样改变你的FAB: -
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:src="@drawable/ic_shuffle"
app:layout_anchor="@id/list"
app:layout_anchorGravity="bottom|right|end"
style="@style/FabStyle"/>
答案 2 :(得分:0)
用于您的RecyclerView
<android.support.v7.widget.RecyclerView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none"
android:clipToPadding="false"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>