更改按钮的DatePickerDialog的顺序为Android 4.0.3(Change butt

2019-07-30 06:10发布

我创建了一个DatePickerDialog

DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), this, year, month, day);

并显示它在Android 4.0.3(API 15)设备,它看起来像这样:

正如你看到的上面,“ 取消 ”按钮的左侧显示,而“ 设置 ”按钮位于右侧。 但是在Android 2.3.3,按键顺序是周围的其他方式。

所以,我怎样才能改变按钮的顺序DatePickerDialog ,以显示‘ 设置 ’的左侧按钮,‘ 取消的Android 4.0.3设备上右侧的按钮?

Answer 1:

所以,我怎样才能改变按钮的DatePickerDialog的顺序,以显示‘设置’的左侧按钮,‘取消’的Android 4.0.3设备上右侧的按钮?

你不知道。 要么你让他们独立,或者你用你自己创建自己的对话框DatePicker已经在错误的顺序按一下按钮。

请记住,Android应用的大多数用户使用的不仅仅是你的Android应用更多。 他们实际使用其他应用程序。 其中一些其他应用程序将使用DatePickerDialog ,这些对话将有按钮顺序显示在你的屏幕截图。 这是你的用户更重要的是你要坚持到设备标准(所以他们的DatePickerDialogs的工作方式相同),比它是可以强制某些设备上错了按钮顺序。



Answer 2:

其实你可以和你不需要创建自己的自定义对话框:

... 
datePickerDialog.show();

    Button negativeButton = datePickerDialog.getButton(DatePickerDialog.BUTTON_NEGATIVE);
    ViewParent buttonParent = negativeButton.getParent();

    if (buttonParent instanceof LinearLayout)
    {
        LinearLayout datePickerDialogLayout = ((LinearLayout) buttonParent);
        datePickerDialogLayout.removeView(negativeButton);
        datePickerDialogLayout.addView(negativeButton);
    }

所以我们在这里做的是:

1)显示对话框(!)之后,我们从它的parrent布局中删除否定按钮(在你的情况下“取消”)。 当被移除时,“设置”按钮(或任何其他按钮,这是在对话框中)变为在布局的最后一个元素。

2)再次添加(负号按钮)。 所以,最后添加的角度的父布局的最后一个元素,即对话。



文章来源: Change buttons' order of DatePickerDialog for Android 4.0.3