DialogFragment填充屏幕在手机上

mks*_*kso 4 android fullscreen fill android-dialogfragment

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

在此输入图像描述

小智 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()的末尾调用此方法.

希望这有助于Jasper


nag*_*ya0 2

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

DialogFragment newFragment = MyDialogFragment.newInstance();
newFragment.show(getFragmentManager(), "dialog");
Run Code Online (Sandbox Code Playgroud)

在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();
    }
Run Code Online (Sandbox Code Playgroud)

活动_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>
Run Code Online (Sandbox Code Playgroud)

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