在没有工具栏的情况下使用AppBarLayout和CollapsingToolbarLayout

时间:2015-10-03 17:01:47

标签: android android-coordinatorlayout android-collapsingtoolbarlayout android-appbarlayout

在互联网上出现这些新布局的例子并不多,而那些少有的布局都基于相同的基本方法。如果我的应用程序中没有合适的工具栏,但仍想使用新材料设计布局的酷功能,那怎么样?

我一直在尝试的一件事是使用CoordinatorLayout中的MapView和RecyclerView以及视差滚动效果。它工作得很好,但是有一个问题。如果我的适配器数量很少,则RecyclerView不会保留在屏幕底部。这里有一些图像可以更好地描述问题。

初始屏幕:

enter image description here

RecyclerView在MapView上滚动,在下方留下空白: enter image description here

有没有办法让RecyclerView保持在最底层?

我的xml看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">

<android.support.design.widget.AppBarLayout
    android:id="@+id/appBarLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_scrollFlags="scroll|enterAlways">

        <com.google.android.gms.maps.MapView
            android:id="@+id/tts_main_map"
            android:layout_width="match_parent"
            android:layout_height="250dp"
            app:layout_collapseMode="parallax" />
    </android.support.design.widget.CollapsingToolbarLayout>

</android.support.design.widget.AppBarLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:scrollbars="vertical"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    />

</android.support.design.widget.CoordinatorLayout>

1 个答案:

答案 0 :(得分:1)

尝试根据列表中的项目数动态设置CollapsingToolbarLayout的android:minHeight属性。即你应该设置(伪代码):

  minHeight = allAvailableHeight - (oneListItemHeigh * listItemCount)

PS。这只是一个想法,我没试过。但我认为它应该有效。