Плавающая панель инструментов с Appcompat

Как создать плавающую панель инструментов, такую ​​как следующее изображение, как это предлагается в руководстве по разработке материалов и в приложении «Карта Google».

Введите описание изображения здесь

Я работал с панелью инструментов раньше, и все комментарии CommonsWare абсолютно правильны.

Виджет Toolbar ( https://developer.android.com/reference/android/support/v7/widget/Toolbar.html ) не имеет абсолютно ничего особенного или отличного от любого другого Viewgroup и не ведет себя иначе, чем любая другая ViewGroup.

Поместите его внутри FrameLayout , поместите на layout_margin параметр layout_margin , сделайте layout_width NOT match_parent и все.

Поместите его в LinearLayout с orientation=horizontal и вы можете использовать layout_weight для управления размером в процентах. Или просто используйте простой dip если это соответствует вашим потребностям.

Я думаю, что предложение Марка о том, чтобы собрать «вид» CardView в комментарии выше, заслуживает этого производного ответа:

Просто поместите Toolbar в CardView :

 <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> 

Поскольку вы следите за концепцией Material Design, я предполагаю, что вы используете компоновку координатора в качестве основного макета и макета без рамки.

Прежде всего нам нужно объявить важные зависимости.

 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"** /> 
Intereting Posts