gpt4 book ai didi

android - 横向模式下的 TimePickerDialog 小部件 (PreferenceScreen)

转载 作者:行者123 更新时间:2023-11-29 01:11:48 26 4
gpt4 key购买 nike

横向模式下 PreferenceScreen 中的 TimePickerDialog 小部件太小。 screenshot

我已经根据这些说明尝试了两种方法(PreferenceActivity 和 PreferenceFragments):TimePicker in PreferenceScreen

当使用时间选择器标题时,TimePickerDialog 布局在横向模式下为空。所以我禁用了标题。在 PreferenceActivity 版本中,我将 setDialogTitle(""); 添加到 TimePreference。在 PreferenceFragmentCompat 版本中,我将以下代码添加到 TimePreference:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.setTitle("");
return dialog;
}

在这两个版本中,时钟都是横向显示的,但是小部件太小了; (当在 PreferenceScreen 之外使用没有标题的 timepickerdialogs 时,我对太小的小部件没有问题)

有什么想法可以在 PreferenceScreen 中实现 TimePicker,以便在横向模式下布局正常吗?

最佳答案

摩托罗拉 Moto G5 Plus Android 7 手机在横向模式下也存在同样的问题。肖像还可以。从日志输出来看,包含时间选择器的首选项警报对话框似乎垂直适合屏幕,因此在对话框内为时间选择器小部件留下的垂直空间太小。可能的解决方案:

  • 如果对话框中仅缺少几个 dp 的垂直空间,则将 <TimePicker> 换行在<ScrollView> .

  • 使用 XML 缩小 TimePicker android:scaleXandroid:scaleY属性(How to make the TimePicker smaller)。我目前正在对此进行测试。

  • 将应用设置为全屏/沉浸式可能会有所帮助,因为它会增加“可用高度”。

  • 将 TimePicker 小部件设置为“微调器”模式,android:timePickerMode="spinner"

编辑:scaleX, scaleY 解决方案是功能性的,但是 TimePicker 看起来很难看。将应用程序设置为全屏会删除屏幕上的 UI 控件,这可能不是许多应用程序的最佳选择。将时间选择器包装在 ScrollView 中也不是最佳选择。

我制作了两个 XML TimePicker 布局,一个带有 android:timePickerMode="spinner" ,另一个用“时钟”。使用可用屏幕高度的资源限定符(文件夹名称中的后缀)选择时钟布局:“h360dp”。因此时钟仅在设备的可用屏幕高度(不包括屏幕上的 UI 控件)大于 360dp 时显示。也不是最优的,但它有效。

编辑 2:下面描述的方法更好。经过测试并可在 Android 4 到 7 的真实设备上运行。TimePicker 对话框在横向方向上正确显示。

步骤是:

我把这里涉及的所有代码文件的示例代码放在 Stackoverflow 上:Appcompatactivity with custom native (not compatibility) dialogpreference containing a TimePicker

关于android - 横向模式下的 TimePickerDialog 小部件 (PreferenceScreen),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42456966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com