2016-01-14 4 views
-1

Это мой файл макета.Плавающая кнопка действия не отображает андроид

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:orientation="vertical"> 


     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:background="@color/primary" 
      android:elevation="6dp" 
      android:minHeight="?attr/actionBarSize" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 



     <android.support.design.widget.TabLayout 
      android:id="@+id/tab_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/toolbar" 
      android:background="@color/primary" 
      android:elevation="6dp" 
      android:minHeight="?attr/actionBarSize" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/pager" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/tab_layout" 
      android:paddingTop="20dp" 
      android:background="@color/windowBackground" 
      android:layout_above="@id/bottomButtons" 
      > 
     </android.support.v4.view.ViewPager> 


     <android.support.design.widget.FloatingActionButton 
      xmlns:app="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:clickable="true" 
      android:src="@drawable/cart" 
      android:layout_margin="16dp" 
      app:elevation="6dp" /> 


    </LinearLayout> 

    <fragment 
     android:id="@+id/fragment_navigation_drawer" 
     android:name="com.wokoshop.sony.app.FragmentDrawer" 
     android:layout_width="@dimen/nav_drawer_width" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     app:layout="@layout/fragment_navigation_drawer" 
     tools:layout="@layout/fragment_navigation_drawer" /> 


</android.support.v4.widget.DrawerLayout> 

В этой кнопке действия макета Плавающий не отображается.

Может ли кто-нибудь помочь мне в этом?

+0

-1 потому что вы сделали это неправильно, и вы даже не искали его в документах или даже на этом лучшем сайте! интересно с этой репутацией! – Mohsen

ответ

2

Пейджер представления устанавливается в wrap_content, и в этом случае остальная часть представления заключается в том, что его высказывание должно содержать его содержимое. Если вы измените корневую группу представлений на Relative layout, ваши проблемы будут решены.

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:orientation="vertical"> 


     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:background="#456786" 
      android:elevation="6dp" 
      android:minHeight="?attr/actionBarSize" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 


     <android.support.design.widget.TabLayout 
      android:id="@+id/tab_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/toolbar" 
      android:background="#456786" 
      android:elevation="6dp" 
      android:minHeight="?attr/actionBarSize" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/pager" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingTop="20dp" 
      android:background="#765876" 
      android:layout_below="@id/tab_layout"/> 


     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:clickable="true" 
      android:src="@android:drawable/ic_input_add" 
      android:layout_margin="16dp" 
      app:elevation="6dp" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true"/> 


    </RelativeLayout> 


</android.support.v4.widget.DrawerLayout> 
2

В качестве контейнера для основного макета используется LinearLayout.

Замените его на RelativeLayout и появится FAB.

0

Вы не должны ставить FAB (плавающее действие) в LinearLayout. В библиотеке поддержки дизайна Android есть специальный макет, который называется CoordinatorLayout, который правильно обрабатывает Snackbars и FAB. Вот две хорошие учебники, которые показывают вам, как это можно использовать:

https://lab.getbase.com/introduction-to-coordinator-layout-on-android/ https://guides.codepath.com/android/floating-action-buttons

Ваше расположение является довольно сложным, так что вы должны играть немного с ним, чтобы понять это, где ФАБ и содержание фрагмент будет в вашей структуре. Вероятно, ваши ViewPager и FAB будут внутри CoordinatorLayout.