Я пытаюсь заставить средство выбора времени отображать полные часы в альбомной ориентации. TimePicker
находится в GridLayout
. Он не перекрывает экран как DialogFragment
или TimePickerDialog
.
В настоящее время это то, что он показывает в альбомной ориентации:
Как видите, нет ничего, с чем можно было бы выбрать время, только время по умолчанию. Я пытаюсь заставить его показывать часы, как в портрете (который работает):
Схема выбора времени:
<package.name.ScrollableTimePicker
android:id="@+id/time_picker"
android:layout_height="wrap_content"
android:layout_width="match_parent" />
Класс, расширяющий TimePicker
:
public class ScrollableTimePicker extends TimePicker {
public ScrollableTimePicker(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public ScrollableTimePicker(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ScrollableTimePicker(Context context) {
super(context);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
// Keeps events to time picker
if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) {
ViewParent p = getParent();
if (p != null) {
p.requestDisallowInterceptTouchEvent(true);
}
}
return false;
}
}
Я поискал в Интернете и нашел следующие сообщения, которые мне не помогли:
У меня нет названия для выбора времени.
Он уже реализован
Пробовал код в манифесте, но все равно не работает.
ОБНОВЛЕНИЕ Как предложил Сиддеш, установка layout_height
из TimePicker
на 200dp
работает, но обрезает портрет. Теперь портрет 200dp
в высоту, но он обрезан, и пейзаж показан полностью: