6

我正在使用 DialogFragment 并想知道是否有一种简单的方法可以指定对话框以在普通/小尺寸设备(电话)上使用全屏。我想要实现的示例是在您选择安装应用程序后在 Google Play 上显示的确认/许可对话框。

在此处输入图像描述

4

3 回答 3

6

如果您想用 DialogFragment 填充屏幕,您只需更改主题即可。用于全屏 android.R.style.Theme_Holo_Light 和非全屏对话框使用 android.R.style.Theme_Holo_Light_Dialog;

在调用中使用这些值:

setStyle(DialogFragment.STYLE_NO_TITLE, android.R.style.Theme_Holo_Dialog); // 举个例子

我在 onCreate() 结束时调用此方法。

希望这有助于贾斯珀

于 2012-08-10T19:50:43.627 回答
2

在平板电脑中,以正常方式显示对话框。

DialogFragment newFragment = MyDialogFragment.newInstance();
newFragment.show(getFragmentManager(), "dialog");

在 Phone 中,将 DialogFragment 作为 Activity 的 onCreate() 中的普通片段添加到布局中。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState == null) {
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        DialogFragment newFragment = MyDialogFragment.newInstance();
        ft.add(R.id.embedded, newFragment);
        ft.commit();
    }

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/embedded"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

</FrameLayout>

注意: <Fragment>Tag 嵌入的片段不起作用。

于 2012-07-23T19:25:37.477 回答
0

有相同的问题(带有确切的图表!)和答案(由提出问题的人提出。)利用资源文件夹分类,答案也是有效的。对话框片段嵌入取决于设备

于 2012-12-08T22:18:18.507 回答