带有 cordinator 布局的操作栏不会 "snap" 在部分更改时完全隐藏或完全显示 android
Action bar with cordinator layout doesn't "snap" to being fully hidden or fully revealed on partial change android
我已经使用协调器布局来实现折叠操作栏的栏。
现在我的问题是我滚动得足够小以隐藏部分操作栏,下面的部分留在那里。
我想要的是,即使我把它部分隐藏起来;它(下面带有几个按钮的栏)应该与操作栏合并。(类似于 Whatsapp)
我的代码是:
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/app_bar_layout"
layout="@layout/pmp_toolbar_2" />
<android.support.v7.widget.RecyclerView
android:id="@+id/pmp_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
稍微滚动后的操作栏如下所示:
我的 build.gradle 文件是
compile 'com.android.support:recyclerview-v7:23.0.1'
compile 'com.android.support:cardview-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
更新:
参见 abhishek 的评论;此问题已在库更新中解决
我正在使用以下布局来实现类似 whatsapp 的滚动效果
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<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"
android:background="?attr/colorPrimary"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="@dimen/fab_margin"
android:src="@drawable/ic_done" />
</android.support.design.widget.CoordinatorLayout>
试试这个:
<android.support.design.widget.CoordinatorLayout 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">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="192dp"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapseToolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="80dp"
app:expandedTitleMarginStart="30dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:title="Custom Layout">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:scaleType="fitXY"
android:src="@drawable/bridge"
app:layout_collapseMode="pin"
app:layout_collapseParallaxMultiplier="1.5"/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:backgroundTint="@android:color/holo_blue_dark"
app:elevation="10dp"
android:translationZ="10dp"
android:layout_marginRight="20dp"
app:layout_anchor="@+id/appBar"
app:layout_anchorGravity="bottom|right|end"
app:borderWidth="0dp"
android:visibility="gone"
android:src="@drawable/plus" />
<android.support.v7.widget.RecyclerView
android:id="@+id/uid"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
这是 known issue Toolbar
在 Android 设计支持库中。自 9 月 9 日以来,它在 Android 问题跟踪器中被标记为 "FutureRelease",这意味着修复应该很快就会出来。 请注意,此修复 尚未 发布。
编辑:如果你现在真的想自己解决这个问题,另一个问题中有一个解决方法:(发现这个link通过错误报告本身)。
最新编辑(已解决):
这在支持库 v23.1.0 中已修复。看
我已经使用协调器布局来实现折叠操作栏的栏。
现在我的问题是我滚动得足够小以隐藏部分操作栏,下面的部分留在那里。
我想要的是,即使我把它部分隐藏起来;它(下面带有几个按钮的栏)应该与操作栏合并。(类似于 Whatsapp)
我的代码是:
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/app_bar_layout"
layout="@layout/pmp_toolbar_2" />
<android.support.v7.widget.RecyclerView
android:id="@+id/pmp_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
稍微滚动后的操作栏如下所示:
我的 build.gradle 文件是
compile 'com.android.support:recyclerview-v7:23.0.1'
compile 'com.android.support:cardview-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
更新: 参见 abhishek 的评论;此问题已在库更新中解决
我正在使用以下布局来实现类似 whatsapp 的滚动效果
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<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"
android:background="?attr/colorPrimary"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="@dimen/fab_margin"
android:src="@drawable/ic_done" />
</android.support.design.widget.CoordinatorLayout>
试试这个:
<android.support.design.widget.CoordinatorLayout 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">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="192dp"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapseToolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="80dp"
app:expandedTitleMarginStart="30dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:title="Custom Layout">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:scaleType="fitXY"
android:src="@drawable/bridge"
app:layout_collapseMode="pin"
app:layout_collapseParallaxMultiplier="1.5"/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:backgroundTint="@android:color/holo_blue_dark"
app:elevation="10dp"
android:translationZ="10dp"
android:layout_marginRight="20dp"
app:layout_anchor="@+id/appBar"
app:layout_anchorGravity="bottom|right|end"
app:borderWidth="0dp"
android:visibility="gone"
android:src="@drawable/plus" />
<android.support.v7.widget.RecyclerView
android:id="@+id/uid"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
这是 known issue Toolbar
在 Android 设计支持库中。自 9 月 9 日以来,它在 Android 问题跟踪器中被标记为 "FutureRelease",这意味着修复应该很快就会出来。 请注意,此修复 尚未 发布。
编辑:如果你现在真的想自己解决这个问题,另一个问题中有一个解决方法:(发现这个link通过错误报告本身)。
最新编辑(已解决):
这在支持库 v23.1.0 中已修复。看