Как стилизовать сборщик "Реакции" с помощью android styles.xml?

Я хотел знать, как установить fontFamily. Как установить цвет и цвет фона на Picker.items?

<Picker
   style={styles.picker} // cannot set fontFamily here
   selectedValue={this.state.selected2}
   onValueChange={this.onValueChange.bind(this, 'selected2')}
   mode="dropdown">
   <Item label="hello" value="key0" /> // cannot set backgroundColor here
   <Item label="world" value="key1" />
</Picker>

Я разместил это на Github и получил ответ, что только некоторые из атрибутов могут быть установлены в React Native с помощью стиля, но некоторые из основных элементов средства выбора (например, используемый шрифт) управляются нативным Android. Это нужно сделать через нативный андроид, используя styles.xml и т. Д.

К сожалению, я не являюсь родным разработчиком Android, поэтому у меня проблемы с пониманием решения. Я добавил следующий фрагмент в /res/values/styles.xml, но цвет текста или фон всплывающего окна не изменились.

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
    </style>
    <style name="SpinnerItem">
        <item name="android:textColor">#ffffff</item>
        <item name="android:background">#993399</item>
    </style>
    <style name="SpinnerDropDownItem">
        <item name="android:textColor">#ffffff</item>
        <item name="android:background">#993399</item>
    </style>
</resources>

Какие еще изменения мне нужно сделать? Как установить fontFamily?

1 ответ

Решение

Это потому, что вам нужно объявить стили внутри вашего AppTheme

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="android:spinnerItemStyle">@style/SpinnerItem</item>
        <item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem</item>
    </style>
    <style name="SpinnerItem">
        <item name="android:textColor">#ffffff</item>
        <item name="android:background">#993399</item>
    </style>
    <style name="SpinnerDropDownItem">
        <item name="android:textColor">#ffffff</item>
        <item name="android:background">#993399</item>
    </style>
</resources>

Это оно:)

Другие вопросы по тегам