Привязка FloatingActionButton

#android #android-layout #android-support-library #android-coordinatorlayout #floating-action-button

#Android #android-макет #android-поддержка-библиотека #android-coordinatorlayout #плавающая кнопка действия

Вопрос:

Я использую поддержку Android FloatingActionButton (FAB) CoordinatorLayout и хочу привязать FAB к a CardView .

Это мой код:

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

<LinearLayout
  ...>
     <android.support.v7.widget.CardView
        android:id="@ id/container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    ...
</LinearLayout>

<android.support.design.widget.FloatingActionButton
    android:id="@ id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="32dp"
    android:src="@android:drawable/ic_menu_send"
    app:layout_anchor="@id/container"
    app:layout_anchorGravity="bottom|end" />

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

Это работает, но иногда FAB отображается в левой верхней части страницы, а не привязан.

В этом случае, когда я нажимаю FAB, он возвращается на якорь. CardView не является прямым дочерним CoordinatorLayout элементом, но [Библиотека поддержки 24.2.1], которую я использую, позволяет это.

В чем может быть проблема?

Комментарии:

1. содержит ли линейный макет какой-либо другой вид или нет?

2. Да, LinearLayout содержит другие представления

Ответ №1:

Попробуйте удалить следующее:

 app:layout_anchor="@id/container"
app:layout_anchorGravity="bottom|end"
  

и добавить:

 android:layout_gravity="bottom|end"
  

Ответ №2:

Вы пытались привязать его к линейному макету, а не к CoordinatorLayout?

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

<LinearLayout
  ...>
     <android.support.v7.widget.CardView
        android:id="@ id/container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    ...
<android.support.design.widget.FloatingActionButton
    android:id="@ id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="32dp"
    android:src="@android:drawable/ic_menu_send"
    app:layout_anchor="@id/container"
    app:layout_anchorGravity="bottom|end" />
</LinearLayout>

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

Комментарии:

1. Да, я пытался переместить FAB во многих точках, и в этом случае он исчезает.

2. Ничего не изменилось, та же проблема

Ответ №3:

Сделайте привязку LinearLayout к FAB.