Должен ли стиль ListView влиять на его элементы? - PullRequest
0 голосов
/ 26 сентября 2019

Сегодня я прочитал о стилях и темах Android и попытался применить их к списку в моем приложении в качестве теста.В приложении есть элемент списка, в который TextViews добавлены программно.

В соответствии с документами, применение стиля в качестве темы влияет и на дочерние представления.

Итак, я попробовал это:

<ListView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/TextAppearance.AppCompat.Small"/>

Я ожидал, что тексты TextView в списке станут маленькими, но ничего не произошло.

Я также попытался @style/TextAppearance.MaterialComponents.Headline1, но это также не имело никакого эффекта.

Почему это так??

Я не менял настройки стиля или темы самостоятельно.Я использую настройки по умолчанию, которые Android Studio создал для проекта.

Не должно ли применение стиля в качестве темы к представлению, подобному приведенному выше, изменить что-либо?

1 Ответ

1 голос
/ 26 сентября 2019

Вы используете стиль «TextAppearance.AppCompat.Small», который применим к TextView, а не универсальный, такой как ListView.

Вам необходимо применить стиль к списку item , который является TextView.Вы можете создать собственный стиль для отображения текста, шрифта, размеров и т. Д. И повторно использовать его во всем приложении.

Если вы создаете свои представления программно, вы можете использовать собственный адаптер (который расширяет адаптер по умолчанию), переопределите метод getView, чтобы применить ваш стиль.См. это

См. эту потрясающую статью @Nick Butcher

...