2015-10-06 7 views
0

Я реализую Fab. Это показано на устройствах API enter image description here но не на устройствах с API> = 21 enter image description hereFab из библиотеки поддержки не видно на Loliloop

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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:background="@color/transparent" 
    android:orientation="vertical"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="?attr/actionBarSize" 
     android:background="@color/background_chart" 

     android:clickable="true"> 


     <ListView 
      android:id="@+id/list" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:divider="@color/white_20" 
      android:dividerHeight="1dip" 
      android:footerDividersEnabled="false" 
      /> 


    </RelativeLayout> 

    <FrameLayout 
     android:id="@+id/toolbar_shadow" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="?attr/actionBarSize" 
     android:background="@drawable/bottom_shadow" 
     android:foreground="@drawable/bottom_shadow" /> 

    <android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_marginTop="@dimen/fab_margin_top" 
    android:layout_marginRight="@dimen/fab_margin_right" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:src="@drawable/ic_add" 
    app:borderWidth="0dp" 
    app:elevation="6dip" 
    app:pressedTranslationZ="12dp" /> 
</RelativeLayout> 

Как показать это для всех API> = 15?

Редактировать: Проблема, кажется, вызвана двумя причинами. 1) в pre lollipop app:pressedTranslationZ="12dp" перемещает FAB вниз (например, верхняя часть поля, где в леденец больше не работает как верхняя граница поля, бит изменяет положение прессованного состояния.
2) кнопка расположена под макетом с отметкой 4 (панель инструментов) , я попытался установить разные app:elevation и android:elevation для FAB, но это ничего не меняет.

ответ

1

Прежде всего API 20 является Kitkat 4.4.2, а 21+ является леденец и 23+ бы Зефир

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

Проблема с маржей в Android 4.4 и 5.0 с FAB - В Lollipop есть проблема с маржой. Чтобы решить эту проблему, определите верхнее и правое поле как с 16dp для API 21+, так и с 0dp для pre-lollipop.

значения/dimens.xml

<dimen name="fab_margin_right">0dp</dimen> 
<dimen name="fab_margin_top">0dp</dimen> 

значения-v21/dimens.xml

<dimen name="fab_margin_right">16dp</dimen> 
<dimen name="fab_margin_top">16dp</dimen> 

и относятся те же значения в вашем FAB внутри макета:

<android.support.design.widget.FloatingActionButton 
    ... 
    ... 
    android:layout_marginTop="@dimen/fab_margin_top" 
    android:layout_marginRight="@dimen/fab_margin_right"/> 

Ссылка:

  1. http://www.technotalkative.com/part-1-floating-action-button/
  2. http://antonioleiva.com/floating-action-button/
+0

его частично разрешенная проблема, теперь FAB видна, если панель инструментов не имеет возвышения, но если я вернусь к панели инструментов, FAB также стоит за ней, несмотря на собственную высоту. – Yarh

0

Увеличить значение высоты. Вероятно, это слой за другим элементом пользовательского интерфейса.

В Lollipop и выше высота над уровнем моря контролирует слой, на который будет нарисован элемент.

+0

FAB отображается, если панель инструментов не имеет высоты, но если я вернусь к панели инструментов, FAB позади нее, несмотря на собственный собственный уровень. – Yarh

1

Попробуйте переместить FABin XML-до FrameLayout или даже до RelativeLayout. У меня была аналогичная проблема, когда я добавил DrawerLayout в свой XML-файл. Когда я переместил FAB перед DrawerLayout в xml-файл, FAB показал.