이것은 실제로 가능합니다. 실제로 원하는대로 할 수 있습니다. 정말로, 옵션 중 하나는 4.x에서는 작동하지 않는 스타일과 테마를 사용하는 것입니다. 더 적절한 또는 쉬운 방법은 다음과 같이 전망 자체를 사용하는 것입니다 말할 수 있습니다 :
// we need this listener since only here all views are really drawn and accessible
yourDialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
if (isButtonsFixed)
return;
// both buttons - you could search for only positive button or whatever button your dialog has
final Button btnPositive = getButton(DatePickerDialog.BUTTON_POSITIVE);
final Button btnNegative = getButton(DatePickerDialog.BUTTON_NEGATIVE);
final Button btnNeutral = getButton(DatePickerDialog.BUTTON_NEUTRAL);
// buttons layout parameters, change it into material style (gravity right)
final LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) btnPositive.getLayoutParams();
lp.weight = 0; // was 1 to fill 50% horizontally
// positive button, set your own label
btnPositive.setText(R.string.dialog_ok_label);
// set text color and size
btnPositive.setTextColor(ResHelper.getColor(R.color.blue_bright));
btnPositive.setTextSize(TypedValue.COMPLEX_UNIT_PX, ResHelper.getDimensPx(R.dimen.text_size_14));
btnPositive.setLayoutParams(lp);
// divider above buttons
((LinearLayout) btnPositive.getParent().getParent()).setShowDividers(LinearLayout.SHOW_DIVIDER_NONE);
}
이 (마지막 줄)에서 모든 버튼 위에 디바이더를 제거합니다. 사용자 정의하려면 다음과 같이하십시오.
((LinearLayout) btnPositive.getParent().getParent()).setDividerDrawable(R.drawable.yer_drawable);
프로그래밍 방식으로 런타임에 수행 할 수 있더라도 확인하십시오. 그 구성 요소에 액세스하는 방법을 찾을 수 없다고 생각합니다. 어쨌든, 나는 하루에 테마를 만들고 결과를 확인하려고합니다. 감사합니다. D – Kanit
@Kanit는 괜찮 으면이 대답을 수락합니다;) – Sidd