Frage Wie style den reaktiven nativen Picker mit android styles.xml?


Ich wollte wissen, wie man die fontFamily einstellt. Wie stelle ich die Farbe und Hintergrundfarbe auf den Picker.items ein?

<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>

ich posted this auf Github und bekam die Antwort, dass nur einige der Attribute in React Native über den Stil gesetzt werden können, aber einige der Kernelemente des Pickers (wie die verwendete Schriftart) wird von nativem Android gesteuert. Es muss über native Android mit styles.xml etc. erfolgen.

Leider bin ich kein nativer Android-Entwickler, daher habe ich Probleme, die Lösung zu verstehen. Ich habe das folgende Snippet zu /res/values/styles.xml hinzugefügt, aber die Textfarbe oder der Hintergrund des Popups hat sich nicht geändert.

<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>

Welche weiteren Änderungen muss ich vornehmen? Wie stelle ich fontFamily ein?


6
2017-08-16 13:17


Ursprung


Antworten:


Das liegt daran, dass Sie die Stile in Ihrem AppTheme deklarieren müssen

<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>

Das ist es :)


7
2017-08-20 15:50