2015-09-24 48 views

risposta

21

A partire dalla versione React Native 0.21, non esiste ancora alcun modo per impostare lo stile del cursore colore tramite oggetti di scena. Ho stilizzato con successo il colore del cursore aggiungendo uno stile personalizzato al tema della mia app.

Si desidera inserire questo codice nel file styles.xml, che si trova nella cartella Android del progetto React, a android/app/src/main/res/values/styles.xml.

<resources> 
    <style name="AppTheme" parent="Theme.AppCompat.Light"> 
     <!-- typical material style colors --> 
     <item name="colorPrimary">@color/kio_turquoise</item> 
     <item name="colorPrimaryDark">@color/kio_hot_pink</item> 

     <!-- sets cursor color --> 
     <item name="colorControlActivated">@android:color/black</item> 
    </style> 
</resources> 

Si noti che questo stile è globale, e impostare il colore del cursore per tutti gli Android TextInput viste nel React app nativa.

+2

Ottima soluzione, mi hai salvato !! grazie :) – BigPun86

+0

Grazie, è fantastico da sentire! :) –

+0

Questo non funziona per me perché il cursore è globalmente un colore: / –

2

Per il colore della sottolineatura è possibile utilizzare underlineColorAndroid proprietà: https://github.com/facebook/react-native/blob/master/Libraries/Components/TextInput/TextInput.js#L290

vedere Esempio: https://github.com/facebook/react-native/blob/master/Examples/UIExplorer/TextInputExample.android.js#L222

Per il colore del cursore non esiste tale proprietà esposta in questo momento. Puoi sempre utilizzare il tema Android personalizzato per la tua app se desideri modificarlo globalmente per tutte le visualizzazioni di testo nella tua app (leggi qui: http://developer.android.com/guide/topics/ui/themes.html)

+0

La proprietà underlineColorAndroid cambia in selezione. Immagino che l'unica soluzione disponibile sia il tema per ora –

+0

Hai avuto successo nella definizione di temi personalizzati per cambiare il colore del cursore su 'Android'? Ho provato senza fortuna. Se puoi, per favore condividi il tuo 'main.xml' o dovunque tu stia definendo il tema? –

3

Oltre a implementare la soluzione @Kio Krofovitch Ho fatto anche il file nella cartella color.xml stessi ../res/values ​​in cui ho scritto qualcosa di simile:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="orange">#ff5500</color> 
    <color name="articlecolor">#3399FF</color> 
    <color name="article_title">#3399FF</color> 
    <color name="cachecolor">#8ad0e8</color> 
</resources> 

e quindi di conseguenza modificato lo styles.xml come segue:

  ... 
     <item name="colorControlActivated">@color/orange</item> 
    </style> 
</resources> 
0

v'è in realtà un puntello a fare questo per TextInput:

  • selectionColor (al cambiamento cursore colore e colore di selezione)
  • underlineColorAndroid (per cambiare il colore della sottolineatura di textInput in Android)

    <TextInput 
        underlineColorAndroid="#FF0000" 
        selectionColor="rgba(0,0,0,0.4)" 
    /> 
    

Ecco il documentation.