Diyalog tam ekranda gösterilecek şekilde nasıl ayarlanır? [kapalı]


129

Bir GridView'ım var ve seçtiğim resmin tam ekranda gösterilmesi gereken bir iletişim kutusunun uygulamasını yapmak istiyorum.

peki diyaloğu nasıl tam ekran modunda gösterebilirim? Teşekkürler!


2
Bir TAM EKRAN kullanmak istiyorsanız Dialog, neden ACTION_VIEW Intentgörüntü dosyaları için sadece varsayılanı kullanmıyorsunuz ?
Will Tate

üzgünüm neredeyse tam ekran veya tam görüntü demek istiyorum
user790156

3
Cevapla bağlantılı olarak willytate diyalog kurmanız gerekiyorsa temada android.R.style.Theme_Translucent_NoTitleBar_Fullscreen'i kullanın
ingsaurabh


3
@MartinPfeffer ayrıca gelecekteki kullanıcılar için bir önerim var ancak soru kapandı Andrew Barber, android topluluğundan değil. bu gerçekten basit bir sorudur, yeni android geliştiricileri her zaman bunu merak eder. daha iyi yanıtlar ve gelecekteki kullanıcılar için bu soru tekrar açılmalıdır
Abhishek Singh

Yanıtlar:


228

Deneyin

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

29
Bunun benim için çalışması için android.R.style.Theme_Black_NoTitleBar_Fullscreen'i kullanmam gerekiyordu
Ben Clayton

4
Call requires API level 11
Luis A. Florit

1
@ LuisA.Florit, Theme_Black_NoTitleBar_Fullscreen'i deneyin
Felipe Caldas

21
Ne tam ekran hakkında sahip bir başlık çubuğuna?
Heath Borders

1
Bunu yaptığımda (kullanarak DialogFragment) durum çubuğu renginin iletişim kutusu tarafından öldürüldüğünü görüyorum, tüm ekran iletişim kutusunun arka plan rengidir. Bir geçici çözüm bilen var mı? İletişim kutusunun penceresinin statusBarColor değerini etkisiz hale getirmeyi denedim. Not: gezinti çubuğu rengi de ölür.
androidguy

83

bu bağlantıya dayanarak , doğru cevap (kendim test ettiğim):

bu kodu yapıcıya veya onCreate()iletişim kutusunun yöntemine koyun :

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

ek olarak, iletişim kutusunun stilini şu şekilde ayarlayın:

<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>

bu, kurucu aracılığıyla gerçekleştirilebilir, örneğin:

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

DÜZENLEME: Yukarıdakilerin hepsine bir alternatif, stili android.R.style.Theme olarak ayarlamak olabilir ve hepsi bu.



42

DÜZENLE StackOverflow, yanıtlarımızı sürümlendirmemize izin verene kadar, bu Android 3 ve altı için geçerli bir yanıttır. Lütfen şu anda sizin için çalışmadığı için olumsuz oy vermeyin, çünkü kesinlikle eski Android sürümleriyle çalışır.


onCreateDialog()Yönteminize yalnızca bir satır eklemeniz gerekir :

@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
FLAG_FULLSCREEN'i neden kullanamıyorum
user790156

2
Bunu söylemek zor - LayoutParams'ı içe aktardınız mı? Düzen xml'iniz fill_parent veya match_parent olarak ayarlanmış mı?
Caspar Harmer

12
android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN kullanın
Derzu

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

1
Bu cevabın güncelliğini yitirmiş olması mümkündür - Android 4.0 ve üstü için işe yaramayabilir.
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();

bunu dene.


1
MATCH_PARENT benim için çalıştı.
Ray
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.