浮动工具栏与Appcompat

如何按照材料devise指南和Google Map应用程序中的build议创build如下图所示的浮动工具栏

在这里输入图像说明

Solutions Collecting From Web of "浮动工具栏与Appcompat"

我之前和Toolbar一起工作过,CommonsWare的所有评论都是正确的。

Toolbar小部件( https://developer.android.com/reference/android/support/v7/widget/Toolbar.html )与其他Viewgroup完全没有什么特别之处或不同,并且行为与其他ViewGroup不同。

把它放在一个FrameLayout ,在其上放置一个layout_margin参数,使layout_width不是match_parent ,就是这样。

把它放在一个LinearLayoutorientation=horizontal ,你可以使用layout_weight来控制大小的百分比。 或者如果适合您的需要,只需使用普通的dip

我认为马克在上面的评论中提到CardView“看”的build议值得这个派生的答案:

只需在CardView放置一个Toolbar

 <android.support.v7.widget.CardView android:id="@+id/map_toolbar_container" android:layout_width="@dimen/whatever_you_want" android:layout_height="wrap_content" android:layout_margin="8dp" app:cardElevation="8dp" app:cardBackgroundColor="#324"> <android.support.v7.widget.Toolbar android:id="@+id/wld_toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:minHeight="?attr/actionBarSize"/> </android.support.v7.widget.CardView> 

由于您遵循材料devise概念,我假设您正在使用协调员布局作为您的主布局和非框架布局。

在此之前,我们需要声明重要的依赖关系。

 dependencies { compile 'com.android.support:design:22.2.1' compile 'com.android.support:cardview-v7:22.2.1' } 

预期/类似输出

在这里输入图像说明

XML片段

 <?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:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <FrameLayout android:id="@+id/frmlyout_locationnote_mapholder" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- You can add your Map here--> <ImageView android:id="@+id/imgvw_locationnote_background" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:scaleType="centerCrop" /> </FrameLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.Toolbar android:id="@+id/tlbr_locationnote_mainmenu" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" /> </android.support.v7.widget.CardView> </LinearLayout> <android.support.design.widget.FloatingActionButton android:id="@+id/fab_locationnote_fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="@dimen/fab_margin" android:src="@drawable/ic_plus_white_24dp" app:layout_anchor="@id/frmlyout_locationnote_mapholder" app:layout_anchorGravity="bottom|right" /> </android.support.design.widget.CoordinatorLayout> 

只需添加下面的代码….

 <android.support.v7.widget.Toolbar android:layout_width="match_parent" android:layout_height="?android:attr/actionBarSize" android:id="@+id/toolbar" android:background="@color/colorPrimary" android:elevation="8dp" android:layout_margin="5dp" > //add whatever elements you want to add in here. </android.support.v7.widget.Toolbar> 
 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" **android:layout_margin="10dp" android:elevation="5dp"** />