#android #material-design #floating-action-button #android-motionlayout
#Android #материал-дизайн #кнопка с плавающим действием #android-motionlayout
Вопрос:
У меня есть приложение с реализованной расширенной кнопкой.
Кнопка отлично сжимается и расширяется в макете ограничений или в любом другом макете, кроме макета движения.
В котором кнопка не расширяется после сжатия и в расширенном состоянии, когда состояние кнопки изменяется на сжатие при нажатии кнопки, тогда текст исчезает, но размер остается прежним.
Версия ссылки material design «реализация ‘com.google.android.material:материал: 1.3.0-beta01′»
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
android:id="@ id/btn_call_helpline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dimen_20dp"
android:text="@string/txt_emergency"
android:textColor="@color/color_white"
app:backgroundTint="@color/red"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:cornerRadius="@dimen/dimen_20dp"
app:elevation="@dimen/dimen_10dp"
app:icon="@drawable/ic_baseline_call_24"
app:iconTint="@color/color_white"
app:rippleColor="@color/color_white" />
Я проверил код, и у него нет такого ограничения, которое предотвращает сжатие и расширение.
Ответ №1:
У FAB, похоже, возникают проблемы с двойным измерением. (MotionLayout должен это сделать)
Простой способ обойти это — обернуть fab в контейнер типа LinearLayout, поместив LinearLayout в MotionLayout
<LinearLayout
android:id="@ id/fabwrap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
>
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
android:id="@ id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello"
android:textColor="@color/white"
app:backgroundTint="#F00"
app:icon="@drawable/ic_battery"/>
</LinearLayout>