對於Holo TimePicker,您可以使用它。
public static void setTimePickerHeightTopBottomMargin(
TimePicker timePicker, int height, int topMargin, int bottomMargin) {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
try {
Field f;
View v;
ViewGroup.MarginLayoutParams params;
// mHourSpinner
f = TimePicker.class.getDeclaredField("mHourSpinner");
f.setAccessible(true);
v = (View) f.get(timePicker);
params = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
params.height = height;
params.topMargin = topMargin;
params.bottomMargin = bottomMargin;
// mMinuteSpinner
f = TimePicker.class.getDeclaredField("mMinuteSpinner");
f.setAccessible(true);
v = (View) f.get(timePicker);
params = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
params.height = height;
params.topMargin = topMargin;
params.bottomMargin = bottomMargin;
// mAmPmSpinner
f = TimePicker.class.getDeclaredField("mAmPmSpinner");
f.setAccessible(true);
v = (View) f.get(timePicker);
params = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
params.height = height;
params.topMargin = topMargin;
params.bottomMargin = bottomMargin;
} catch (Exception e) {
Log.w(TAG, e);
}
}
}
單位是像素,所以一定要從dp轉換。不要使用小於120dp的高度。通過使用領域mDaySpinner
,mMonthSpinner
和mYearSpinner
而不是反射
setTimePickerHeightTopBottomMargin(mTimePicker,
ViewGroup.LayoutParams.WRAP_CONTENT, 0, 0);
雖然我沒有測試它,它應該是的DatePicker相同:
保持高度和消除垂直利潤率一般應足夠。
適合我+1 – mmirwaldt