Цель: Я пытаюсь применить две разные темы в одном фрагменте. Один для общего xml фрагмента, а другой для конкретного вида в пределах этого фрагмента xml.
Причина / проблема: Причина в том, что это не кажется возможным чтобы изменить весь фон плавающей кнопки действия на вектор с помощью MaterialComponents, но он работает с appCompat.
Первоначально я пытался изменить тему в xml, используя style = "..." как показано ниже, но похоже, что он возвращается к теме, объявленной в манифесте, которой является AppTheme1. Я знаю это, потому что тестировал его, переключая объявленную там тему. То есть, когда я переключил его на AppTheme2, вектор правильно загрузился в FAB, но он разбился где-то еще, так как у меня есть компоненты MaterialComponents во всем приложении.
Решение: Я думаю, очевидное решение для это означало бы изменить тему только для рассматриваемой плавающей кнопки действия, но я не знаю, как это сделать. Любая помощь очень ценится. Спасибо!
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/nationality"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_margin="10dp"
android:scaleType="fitXY"
app:srcCompat="@drawable/flag_united_states_of_america"
app:borderWidth="0dp"
style="@style/AppTheme2"
app:maxImageSize="56dp" />
Темы:
<style name="AppTheme1" parent="Theme.MaterialComponents.Light.NoActionBar" >
&&
<style name="AppTheme2" parent="Theme.AppCompat.Light.NoActionBar" >
С компонентами материала:
With AppCompat:
Manifest:
<?xml version="1.0" encoding="utf-8"?>
Таким образом, когда тема изменяется с AppCompat на компоненты материала, ресурс изображения больше не применяется должным образом к плавающей кнопке действия. Поэтому я просто хочу применить AppCompat для кнопки с плавающим действием, но оставлю компоненты материала в качестве основного стиля.