Почему TextSwitchers так неудобно использовать? - PullRequest
0 голосов
/ 26 марта 2020

Я использую (несколько) TextSwitchers в моем приложении, большинство из которых выглядит что-то. как это:

<TextSwitcher
        android:id="@+id/countdownTextSwitcher"
        android:inAnimation="@anim/countdown_enter" />

Каждый требует Фабрика, ул. вот так (Kotlin):

countdownTextSwitcher.setFactory {
    val textView = TextView(context)
    textView.textSize = 15f
    textView.someOtherProperty = someValue
    textView
}

Где-то в моем коде я задам текст. (Ради этого примера давайте не будем обращать внимания на то, что строковые ресурсы / множественное число являются хорошей идеей.)

countdownTextSwitcher.setText("42 Seconds")

Я предполагаю, что в Java Фабрика еще больше раздуваемого кода.

Есть ли (несколько элегантный) способ избавиться от фабрики и указать textSize и someOtherProperty в xml? Таким образом, единственный способ, которым мой код должен взаимодействовать с макетом, - это вызов setText(). Кажется, я не могу его найти.

Если нет никакого пути, то какова техническая причина этого? Я не знаком с пользовательскими представлениями, но установка фабрики по умолчанию и передача атрибутов xml, похоже, не сводит с ума.

Если для этого нет реальной технической причины, то какова настоящая причина для этого? как это реализовано? Я полностью пропускаю вариант использования по умолчанию?

...