Intereting Posts
Android-ящик с фиксированной датой и повторяющийся Как ссылаться на строку из другого пакета в библиотеке, используя XML в Android? Библиотека поддержки Android v17 Android Room – выбор запроса с помощью LIKE Не удается найти .idea / misc.xml при создании в Android Studio Android, как установить значок флажка на правах? OnPostExecute не вызывается Scrollview подталкивает вверх, когда отображается мягкая клавиатура Android. Fragment.isAdded возвращает true после удаления фрагмента из контейнера Android: почему собственный код намного быстрее, чем Java-код Проблемы с возможностью ввода клавиатуры на Android с React Native Меню гамбургера вращается по стрелке на новую активность Создание проекта Android с муравьем, имеющим проект библиотеки в зависимости от другого проекта библиотеки Android, как передать Activity.class в качестве аргумента для функции Прозрачная часть изображения в ImageView становится черной

Кнопка плавающего действия неожиданное изменение гравитации анкера

У меня есть активность и несколько фрагментов. Один из фрагментов содержит FAB с анкерным гравитационным дном | right | end. Он выглядит хорошо, но когда я начинаю новый фрагмент и затем нажимаю кнопку «назад», в верхнем левом углу появляется FAB. Я использую схему координатора, но это не помогает. Вот мой макет:

<?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"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:id="@+id/fragment_main_page"> <ListView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/main_page_listview" android:layout_marginTop="5dp"> </ListView> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="3dp"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="12dp" android:src="@drawable/info_main_page" android:layout_gravity="center_vertical"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_gravity="center_vertical" android:id="@+id/how_to_use" android:text="@string/how_to_use" android:textAllCaps="false" android:textAppearance="?android:attr/textAppearanceMedium" android:textStyle="italic" android:background="@android:color/transparent"/> </LinearLayout> </LinearLayout> <android.support.design.widget.FloatingActionButton android:id="@+id/floating_promos" android:layout_width="42dp" android:layout_height="42dp" android:layout_margin="16dp" android:clickable="true" android:src="@drawable/floating_promos" app:layout_anchor="@id/fragment_main_page" app:layout_anchorGravity="bottom|right|end" app:backgroundTint="#fb9f12" app:fabSize="mini"/> </android.support.design.widget.CoordinatorLayout> 

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

 listWorkData.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { listWorkData.removeOnLayoutChangeListener(this); CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams) btnSubmitConfirm.getLayoutParams(); lp.anchorGravity = Gravity.BOTTOM | GravityCompat.END; btnSubmitConfirm.setLayoutParams(lp); } }); listWorkData.getAdapter().notifyDataSetChanged();