2010-03-22 34 views
6

Tôi cố gắng thay đổi màu chữ và sắp xếp mục trong spinner đến trung tâm của nó như thế nào tôi có thể làm điều nàyLàm cách nào để tô màu và căn chỉnh mục spinner trên android?

đây là mã của tôi

String[] li={"1","2","3"}; 
final Spinner combo = (Spinner)findViewById(R.id.widget30); 
ArrayAdapter<String> a = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, li); 
combo.setAdapter(a); 

Cảm ơn

Trả lời

19

Sử dụng một giao diện tùy chỉnh cho điều đó , và chỉ định bằng cách gọi:

a.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

Lưu ý rằng bạn phải sử dụng quan điểm riêng của mình tại đây: R.id.my_simple_spinner_dropdown_item

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    style="?android:attr/spinnerItemStyle" 
    android:singleLine="true" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:ellipsize="marquee" /> 
+0

Rất hay ... làm việc cho tôi. Có vẻ kỳ quặc để tạo kiểu một Spinner với một TextView, nhưng nó chắc chắn hoạt động. Do Spinners bằng cách nào đó kế thừa màu văn bản mà không tạo kiểu cho chúng theo cách này? Trên trình mô phỏng, tôi có hành vi khác so với trên điện thoại. Điện thoại cho tôi chữ màu trắng trên nền trắng ... rõ ràng là một vấn đề. Kỹ thuật này cho phép tôi ép buộc khả năng hiển thị. –

+1

Có một nhược điểm lớn đối với giải pháp này. Để thiết lập các mục RTL, bạn cần cung cấp cho nó một chiều rộng của fill_parent hoặc match_parent. Cách sắp xếp các mục RTL khi sử dụng wrap_content cho TextView? vì chúng ta thường muốn chiều rộng của spinner bằng với chiều rộng mục lớn nhất. – Reza

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