2015-01-20 18 views
6

Trong mã của tôi, tôi thêm các yếu tố đầu vào như radioButton, hộp kiểm, vv vào Bố cục của tôi theo lập trình. Vấn đề là, phong cách của những yếu tố đó không phải là kiểu mặc định mà bạn sẽ nhận được, khi bạn thêm vào, hãy nói radioButton qua xml. (Nó trông thực sự trắng và gần như nhìn thấy trên nền ứng dụng màu trắng. Một chút giống như nó trong suốt) Ngoài ra, các yếu tố EditText tôi thêm có cùng kiểu và nếu bạn nhập nội dung nào đó, văn bản quá lớn và chồng lên dòng văn bản một chút. Vì vậy, tôi đoán nó tất cả đi xuống bằng cách nào đó cho những yếu tố đó phong cách mặc định của họ, giống như họ nhìn khi được xác định thông qua xml.Thiết lập kiểu Chế độ xem được thêm theo chương trình

Một mẫu mã của tôi trông như thế này:

RadioGroup radioGroup = new RadioGroup(mContext); 
    radioGroup.setLayoutParams(fullWidthWrapHeight); 

    for (int i = 0; i < arg0.getOptions().size(); i++){ 
     RadioButton radioButton = new RadioButton(mContext, null); 
     radioButton.setPadding(padding16dp , padding8dp, padding16dp, padding8dp); 
     radioButton.setText(arg0.getOptions().get(i).getText()); 
     radioButton.setLayoutParams(wrapBoth); 
     radioButton.setGravity(Gravity.CENTER_HORIZONTAL); 

     radioButton.setTextAppearance(mContext, R.style.Default_Text); 
     radioGroup.addView(radioButton); 
    } 

My lvl mục tiêu API là 21 (Lollipop)

Trả lời

12

Bạn có thể vượt qua một phong cách được định nghĩa bên trong styles.xml như một cuộc tranh cãi của một constructor View. Vì vậy, xem xét ví dụ của bạn, bạn sẽ phải gọi:

RadioButton radioButton = new RadioButton(mContext, null, R.attr.radioButtonStyle); 

sau đó thêm thuộc tính tùy chỉnh bên trong attrs.xml

<attr name="radioButtonStyle" format="reference" /> 

và bên trong chủ đề ứng dụng của bạn trong styles.xml thêm

<item name="radioButtonStyle">@style/YourRadioButtonStyle</item> 

YourRadioButtonStyle là phát thanh tùy chỉnh kiểu nút được xác định trong styles.xml

+0

Có phải bằng cách nào đó cũng có thể truyền kiểu radioButton mặc định hay tôi phải tạo kiểu mới có kiểu mặc định là cha mẹ? – Cuddl3s

+0

bạn phải định nghĩa 'YourRadioButtonStyle' có' @android: style/Widget.CompoundButton.RadioButton' làm cha và đặt một số trường theo cách bạn muốn –

+0

chuyển kiểu mặc định của radioButton bạn có thể sử dụng 'com. android.internal.R.attr.radioButtonStyle' thay vì 'R.attr.radioButtonStyle' –

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