有兩種方式可以達到此目的:
一、在xml布局中定義datepicker控件時,設置width小一些晨横,只夠顯示年月,不夠顯示日箫柳。
二手形、datepicker控件中內置了三個NumberPicker控件,找到顯示日的控件悯恍,然后將其隱藏掉
DatePicker dp =this.findViewById(R.id.dp);
if (dp != null) { ((ViewGroup) dp.getChildAt(0)).getChildAt(0).setVisibility(View.GONE); }
在2.2系統(tǒng)中DatePicker控件保含了一個LinearLayout子view库糠,而LinearLayout中包含三個NumberPicker控件分別用來顯示年月日,NumberPicker控件中又包含了三個子view涮毫,分別是NumberPickerButton("+"號)\EditText\NumberPickerButton("-"號)瞬欧;
在4.0系統(tǒng)中DatePicker中view層次結構與2.2不同,多了一層:
DatePicker包含了一個子view:LinearLayout.
LinearLayout中包含了兩個子view:LinearLayout和CalendarView.
子LiearLayout中包含了三個NumberPicker控件
NumberPicker控件中包含了三個子控件:
NumberPickerButton("+"號)\EditText\NumberPickerButton("-"號)罢防。
這就造成上面的那段代碼在4.0中是達不到目的艘虎,想要在4.0中也實現(xiàn)該隱藏日的功能需修改代碼如下:
((ViewGroup)((ViewGroup) dp.getChildAt(0)).getChildAt(0)).getChildAt(0).setVisibility(View.GONE);