Обновите библиотеки для поддержки AndroidX - PullRequest
0 голосов
/ 14 октября 2018

В настоящее время я обновляю свой проект для поддержки AndroidX.Я перестроил все библиотеки на новые androidx - те.Тем не менее, существуют зависимости, как, например, com.wdullaer:materialdatetimepicker, которые не будут обновляться и будут отображаться в пользовательском интерфейсе очень уродливо.

enter image description here

Как заставить эти кнопки использовать новые библиотеки материалов?Я включил параметры

android.useAndroidX=true
android.enableJetifier=true

, но это не повлияет на эти библиотеки, как уже упоминалось.

1 Ответ

0 голосов
/ 14 октября 2018

Ответ может быть простым:

Material Components заменяет все экземпляры Button на экземпляр MaterialButton при использовании одной из его обычных тем: https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md#material-components-themes Версия по умолчанию дляMaterialButton использует colorPrimary в качестве цвета фона.Поскольку Material Components заменяет заменитель View своей собственной реализацией, я мало что могу сделать, чтобы исправить это из этой библиотеки.

Существует два обходных пути:

Используйте одну из тем моста, котораяне заменяйте View Inflater. Перезапишите Inflater View снова в вашей теме приложения, добавив следующий оператор в вашу тему приложения: androidx.appcompat.app.AppCompatViewInflater. Затем вам нужно будет явно использовать MaterialButton в вашем приложении, а не Button

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

<item> name="viewInflaterClass">androidx.appcompat.app.AppCompatViewInflater</item>

Ссылаясь на https://github.com/wdullaer/MaterialDateTimePicker

...