我正在优化我们的Android平板应用程序。对于大部分应用程序,我们使用片段(fragments),但对于某些设置屏幕,我们只想在平板电脑上以对话框的形式启动该屏幕。为了实现这一点,我们在清单文件中设置了Activity的主题。
<activity
android:name="com.company.app.EditTaxTypeSettingsActivity"
android:theme="@style/ActivityTheme">
</activity>
这里是主题(在res/values-large-v11文件夹中):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ActivityTheme" parent="@android:style/Theme.Holo.Light.Dialog">
<item name="android:windowIsFloating">true</item>
</style>
</resources>
使用此主题的活动在横向方向上以对话框形式打开,看起来很好。但在纵向模式下,对话框会垂直填充屏幕,这看起来很愚蠢。
我该如何设置这些对话框的最大高度?我尝试了设置主题的maxHeight属性
<item name="android:maxHeight">500dip</item>
但似乎是指对话框容器而不是对话框内容本身的高度。(即,如果我将Activity主题的高度设置为500dip,则对话框只会得到一个非常大的对话框标题区域)我还尝试设置活动布局xml(RelativeLayout)的大小,但我不能设置maxHeight,我只能设置高度,但我无法在那里硬编码高度,因为我已将保存和取消按钮设置为
android:layout_alignParentBottom="true"
,以便当键盘弹出时它们仍然位于键盘上方。(硬编码活动布局高度会阻止保存/取消按钮保持在键盘顶部)谢谢,有人知道如何在主题级别上设置最大对话框高度吗?
Fragment
作为Dialog
。直接使用DialogFragment
就好了,它会正确地调整大小以适应你想要展示的内容。 - Andy