Ну, я сделал демо с AlertDialog
и оно работает нормально.Нет больше сфокусированных детей.
AlertDialog.Builder builder = new AlertDialog.Builder(DemoActivity.this);
View view=LayoutInflater.from(DemoActivity.this).inflate(R.layout.temp,null);
builder.setView(view);
builder.setTitle("Pick");
DatePicker datePicker=view.findViewById(R.id.dp);
datePicker.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
builder.setPositiveButton("Set", (dialog, which) -> {
});
builder.setNegativeButton("Cancel", (dialog, which) -> {
});
AlertDialog dialog = builder.create();
dialog.show();
И xml - это
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<DatePicker
android:id="@+id/dp"
android:layout_width="match_parent"
android:calendarViewShown="false"
android:datePickerMode="spinner"
android:layout_height="wrap_content">
</DatePicker>
Ну, я не могу проверить на Gingerbread
(Не могу путешествовать во времени в прошлом).Так что его тестировали на Android Oreo.Посмотрите, работает ли это как ожидалось на Gingerbread
.