2016-08-12 8 views
28

Nie mogę tego stylu. Nie ma prawie żadnej dokumentacji na ten temat. Chcę wiedzieć, jak ustawić fontFamily. Jak ustawić kolor tła w Picker.items?Jak ustawić standardowy próbny selektor Androida dla reagentów?

https://facebook.github.io/react-native/docs/picker.html

Ustawianie fontFamily lub kolor tła nie działa. Zawijanie go w widoku i nadawanie atrybutów stylu View również nie działa.

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

Dlaczego downvote? Mówię o standardowym komponencie do pobierania, jeśli to pomyłka. –

Odpowiedz

26

Może być stylizowany przez natywnego Androida. Zobacz this i this.

Dodaj następujący kod do /res/values/styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="android:spinnerItemStyle">@style/SpinnerItem</item> 
    <item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem</item> 
</style> 

<style name="SpinnerItem" parent="Theme.AppCompat.Light.NoActionBar">> 
    <item name="android:fontFamily">sans-serif-light</item> 
    <item name="android:textSize">18dp</item> 
</style> 

<style name="SpinnerDropDownItem" parent="Theme.AppCompat.Light.NoActionBar">> 
    <item name="android:textColor">#ffffff</item> 
    <item name="android:textSize">18dp</item> 
    <item name="android:fontFamily">sans-serif-light</item> 
    <item name="android:gravity">center</item> 
    <item name="android:background">@drawable/mydivider</item> 
</style> 

Utwórz plik w RES/rozciągliwej/mydivider.xml i dodaj następujący kod

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid android:color="#29A1C9" /> 
    <corners android:radius="0.5dp" /> 
    <stroke 
     android:color="#FFFFFF" 
     android:width="0.1dp" /> 
</shape> 

Przed stylizacją:

enter image description here

Po stylizacji: enter image description here

+1

Jak pozbyć się białego tła na górze i na dole prostokąta? – Ozzy

+0

Próbowałem, ale nie mogłem, więc zostawiłem go takim jakim jest. Nie wygląda tak źle :) –

+0

Mam to dziękować! Czy istnieje jednak sposób na wybór wielu stylów? Załóżmy, że chcę, by rozmiar czcionki był większy w jednym selektorze w mojej aplikacji, ale pozostałe są takie same. Czy istnieje sposób na ustawienie jakiegoś atrybutu w kodzie javascript, który mógłbym użyć, aby zmienić styl, z którego korzysta z natywnego androida xml? –

3

Jeśli spojrzeć na style podpory, to styl dla Picker, nie przedmioty Picker.

Możesz także zobaczyć na dokumentach, że selektor ma itemStyle prop, ale to tylko iOS. Nie możesz stylować elementów pobierania Androida.

+0

Opublikowałem to jako problem na Github i otrzymałem odpowiedź, że można to zrobić za pomocą natywnego programowania Android. Jeśli wiesz, jak to zrobić, odpowiedz na to [pytanie] (http://stackoverflow.com/questions/38976064/how-to-style-the-react-native-picker-using-android-styles-xml) ? –

5

Pytanie może być stary, ale w przypadku, można to wykorzystać do stylu koloru: <Item label="blue" color="blue" value="blue" />

+0

co z 'tłem? –

Powiązane problemy