當前爲我的應用程序使用Theme.Sherlock主題。有可能改變TimePicker小部件的主題。我想將藍色分隔線改爲綠色,將白色文字改爲黑色。Android如何更改TimePicker主題?
我還沒有找到任何可用的東西(不幸的是TimePicker從android-holo-colors.com工具中丟失),希望你有一個好主意。
謝謝!
當前爲我的應用程序使用Theme.Sherlock主題。有可能改變TimePicker小部件的主題。我想將藍色分隔線改爲綠色,將白色文字改爲黑色。Android如何更改TimePicker主題?
我還沒有找到任何可用的東西(不幸的是TimePicker從android-holo-colors.com工具中丟失),希望你有一個好主意。
謝謝!
由於Android SDK不允許您修改timepicker內的元素。你需要一種方法來進行黑客行爲。 對於文本顏色,你需要改變theme.Here是我的Fragment中的一個小例子。 重點是「R.style.Picker_Black」,我將主題設置爲「Theme.Holo.Light」,以便在時間選擇器中顯示「黑色」文本顏色。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.Picker_Black);
LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper);
View v = localInflater.inflate(R.layout.fragment_booking, container, false);
return v;
}
定義風格 「style.xml」
<style name="Picker.Black" parent="android:Theme.Holo.Light">
<item name="android:editTextStyle">@style/Widget.EditText.White</item>
</style>
針對分配:
public class CustomTimePicker extends TimePicker {
public CustomTimePicker(Context context) {
super(context);
init();
}
public CustomTimePicker(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CustomTimePicker(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
removeAllDividers(this);
}
private void removeAllDividers(ViewGroup picker) {
for (int i = 0; i < picker.getChildCount(); i++) {
View view = picker.getChildAt(i);
if (view instanceof NumberPicker) {
try {
Field field = NumberPicker.class.getDeclaredField("mSelectionDivider");
field.setAccessible(true);
field.set(view, null);
} catch (Exception e) {
}
} else if (view instanceof ViewGroup) {
removeAllDividers((ViewGroup) view);
}
}
}
}
雖然我有點晚了這個答案,但對於那些誰將來懷疑。添加在gradle
:
compile 'com.github.rey5137:material:1.2.2'
這是我所見過的best library。用它。它包含您需要的所有信息。
Tumbleweed帖子還是什麼?我也想知道這是否可能。 –