2015-09-24 23 views

Trả lời

21

Kể từ React Native version 0.21, vẫn không có cách nào để tạo kiểu cho con trỏ màu sắc thông qua đạo cụ xem. Tôi đã tạo kiểu con trỏ thành công bằng cách thêm kiểu tùy chỉnh vào chủ đề ứng dụng của mình.

Bạn sẽ muốn đặt mã này trong tệp styles.xml, nằm trong thư mục android của dự án React của bạn, tại 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> 

Lưu ý rằng kiểu này là toàn cục và sẽ đặt màu con trỏ cho tất cả chế độ xem Android TextInput trong ứng dụng React Native của bạn.

+2

Giải pháp tuyệt vời, bạn đã cứu tôi !! cảm ơn :) – BigPun86

+0

Cảm ơn, đó là tuyệt vời để nghe! :) –

+0

Điều này không hiệu quả đối với tôi vì sau đó con trỏ là một màu toàn cục: / –

2

Đối với màu gạch dưới bạn có thể sử dụng underlineColorAndroid tài sản: https://github.com/facebook/react-native/blob/master/Libraries/Components/TextInput/TextInput.js#L290

Xem ví dụ: https://github.com/facebook/react-native/blob/master/Examples/UIExplorer/TextInputExample.android.js#L222

Đối với màu sắc con trỏ không có tài sản tiếp xúc vào lúc này như vậy. Bạn luôn có thể sử dụng chủ đề android tùy chỉnh cho ứng dụng của mình nếu bạn muốn thay đổi chủ đề đó cho tất cả các bản xem trước trong ứng dụng của bạn (đọc thêm tại đây: http://developer.android.com/guide/topics/ui/themes.html)

+0

Thuộc tính underlineColorAndroid sẽ thay đổi khi chọn. Tôi đoán giải pháp có sẵn duy nhất là chủ đề cho bây giờ –

+0

Bạn có thành công trong việc xác định chủ đề tùy chỉnh để thay đổi màu của con trỏ trên 'Android' không? Tôi đã cố gắng không may mắn. Nếu bạn có thể, vui lòng chia sẻ 'tệp main.xml' của bạn hoặc bất cứ nơi nào bạn định nghĩa chủ đề? –

3

Bên cạnh việc thực hiện giải pháp @Kio Krofovitch Tôi cũng đã tập color.xml trong cùng một thư mục ../res/values ​​trong đó tôi đã viết một cái gì đó như:

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

và sau đó cho phù chỉnh sửa styles.xml như sau:

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

có thực sự là một chỗ dựa thực hiện điều này cho TextInput:

  • selectionColor (để thay đổi con trỏ màu cũng như màu sắc lựa chọn)
  • underlineColorAndroid (thay đổi màu sắc gạch dưới của textinput trong Android)

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

Đây là documentation.

Các vấn đề liên quan