【发布时间】:2016-04-15 05:04:49
【问题描述】:
我有一个包含 ListView 的 AppCompatActivity,我将其显示为对话框(即要求用户拍照或从图库中选择图像的列表)。
但是它说我必须为对话框使用Theme.AppCompat。所以我用
<style name="CameraMenuTheme" parent="Theme.AppCompat.Light.Dialog">
</style>
但是,与标准 DialogFragments 等中似乎出现的蓝色文本/蓝色下划线相比,生成的标题为黑色且没有下划线。
如何将相同的主题返回到此 Dialog 主题?
使用屏幕 sn-p 编辑:
我正在通过执行以下操作从另一个 DialogFragment 调用这个新对话框:
Intent intent = new Intent(getActivity(), CameraMenu.class);
intent.putExtra(TAG_1, stuff_1);
intent.putExtra(TAG_2, stuff_2);
startActivityForResult(intent, ACT_TAG);
【问题讨论】:
-
使用活动并将其显示为对话框的任何特殊原因?因为您正在寻找可以通过使用 android.support.v7.app.AlertDialog.Builder 来实现,设置标题并提供 setSingleChoiceItems
-
@RajenRaiyarela 我在 DialogFragment 中,当我让我的用户选择从相机或图库中抓取图片时,该选择以嵌入在 Activity 中的 ListView 的形式授予,为了让这个活动显示为对话框,我使用了对话框主题。
-
我使用 ListView 来显示选项,因为它允许我有效地包含每个选项的图标
-
@RajenRaiyarela 我的理解是
SingleChoiceItems不允许完全自定义的项目视图,就像你可以用 ListViews 做的那样(即不能像我在截图) -
如果仅用于显示列表项的图标和文本,那么对于简单的解决方案,而不是将 SingleChoiceItems 作为字符串数组传递,您可以使用您在活动中创建的相同适配器。由于 DialogFragment 样式支持中的问题,您没有获得所需的标题颜色。您必须使用 android.support.v7.app.AlertDialog 才能正确处理
标签: android android-appcompat android-theme android-styles android-dialog