Bagaimana cara mengatur dialog untuk ditampilkan di layar penuh? [Tutup]


129

Saya memiliki GridView dan saya ingin membuat implementasi dialog, di mana gambar yang saya pilih harus ditampilkan di layar penuh.

jadi bagaimana saya bisa membuat acara dialog dalam mode layar penuh? Terima kasih!


2
Jika Anda ingin menggunakan LAYAR LENGKAP Dialog, mengapa tidak menggunakan default ACTION_VIEW Intentuntuk file gambar?
Will Tate

maaf maksud saya layar hampir penuh atau gambar penuh
user790156

3
Dalam hubungannya dengan jawaban untuk willytate jika Anda harus berdialog maka gunakan android.R.style.Theme_Translucent_NoTitleBar_Fullscreen dalam tema
ingsaurabh


3
@ MartinPfeffer saya juga punya saran untuk pengguna masa depan tetapi pertanyaan ditutup Andrew Barber bukan dari komunitas android. Ini benar-benar pertanyaan sederhana. Pengembang Android baru selalu ingin tahu tentang ini. pertanyaan ini harus terbuka lagi untuk jawaban yang lebih baik dan pengguna masa depan
Abhishek Singh

Jawaban:


228

mencoba

Dialog dialog=new Dialog(this,android.R.style.Theme.Black.NoTitleBar.Fullscreen)

29
Agar ini berhasil, saya harus menggunakan android.R.style.Theme_Black_NoTitleBar_Fullscreen
Ben Clayton

4
Call requires API level 11
Luis A. Florit

1
@ LuisA.Florit coba Theme_Black_NoTitleBar_Fullscreen
Felipe Caldas

21
Bagaimana dengan layar penuh dengan bilah judul?
Heath Borders

1
Ketika saya melakukan ini (menggunakan DialogFragment) saya melihat warna bilah status dimatikan oleh dialog, seluruh layar adalah warna latar belakang dialog. Apakah ada yang tahu solusinya? Saya mencoba mengatur statusBarColor dari jendela dialog, tanpa efek. PS: warna bilah navigasi terbunuh juga.
androidguy

83

berdasarkan tautan ini , jawaban yang benar (yang telah saya uji sendiri) adalah:

letakkan kode ini di konstruktor atau onCreate()metode dialog:

getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.MATCH_PARENT);

selain itu, atur gaya dialog ke:

<style name="full_screen_dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>

ini dapat dicapai melalui konstruktor, misalnya:

public FullScreenDialog(Context context)
{
  super(context, R.style.full_screen_dialog);
  ...

Sunting: alternatif untuk semua hal di atas adalah mengatur gaya ke android.R.style.Tema dan hanya itu.


55

Cara termudah yang saya temukan

Dialog dialog=new Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen);
        dialog.setContentView(R.layout.frame_help);
        dialog.show();

1
terima kasih ini benar-benar cara termudah!
CommonSenseCode

1
Bekerja seperti pesona!
Tautan 88

1
Bagus. Bekerja dengan sempurna
Jevgenij Kononov

Ini sempurna! Harus menjadi solusi yang diterima.
AmeyaB

tidak dapat mengubah warna latar belakang, masih hitam
Jemshit Iskenderov

42

EDIT Hingga saat seperti StackOverflow memungkinkan kita untuk versi jawaban kita, ini adalah jawaban yang berfungsi untuk Android 3 dan di bawah. Tolong jangan downvote karena itu tidak bekerja untuk Anda sekarang, karena pasti bekerja dengan versi Android yang lebih lama.


Anda hanya perlu menambahkan satu baris ke onCreateDialog()metode Anda :

@Override
protected Dialog onCreateDialog(int id) {
    //all other dialog stuff (which dialog to display)

    //this line is what you need:
    dialog.getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN);

    return dialog;
}

1
Mengapa saya tidak dapat menggunakan FLAG_FULLSCREEN
user790156

2
Yah, itu sulit dikatakan - Apakah Anda mengimpor LayoutParams? Apakah tata letak xml Anda disetel ke fill_parent atau match_parent?
Caspar Harmer

12
gunakan android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN
Derzu

1
GALAT:FLAG_FULLSCREEN cannot be resolved or is not a field
Luis A. Florit

1
Mungkin saja jawaban ini sudah usang - mungkin tidak berfungsi untuk Android 4.0 dan lebih tinggi.
Caspar Harmer

34
dialog = new Dialog(getActivity(),android.R.style.Theme_Translucent_NoTitleBar);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.loading_screen);
    Window window = dialog.getWindow();
    WindowManager.LayoutParams wlp = window.getAttributes();

    wlp.gravity = Gravity.CENTER;
    wlp.flags &= ~WindowManager.LayoutParams.FLAG_BLUR_BEHIND;
    window.setAttributes(wlp);
    dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
    dialog.show();

coba ini.


1
MATCH_PARENT bekerja untuk saya.
Ray
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.