2015-07-04 8 views
11

Sto provando a creare una finestra di dialogo personalizzata per mostrare un elenco di valori nella parte inferiore dello schermo.Come rimuovere i margini di dialogo?

Come rimuovere i margini della finestra di dialogo?

voglio che questo ... enter image description here

ho questo ... enter image description here

codice Dialog:

Dialog d = new Dialog(this); 
    d.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    d.setContentView(R.layout.dialog_options); 
    Window window = d.getWindow(); 
    WindowManager.LayoutParams wlp = window.getAttributes(); 
    wlp.width = WindowManager.LayoutParams.MATCH_PARENT; 
    wlp.gravity = Gravity.BOTTOM; 
    window.setAttributes(wlp); 
    d.show(); 

risolto! Soluzione migliore:

<style name="BottomOptionsDialogTheme" parent="Theme.AppCompat.Light.Dialog"> 
    <item name="android:windowBackground">@null</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowIsFloating">false</item> 
    <item name="android:layout_margin">0dp</item> 
    <item name="android:padding">0dp</item> 
    <item name="android:layout_gravity">bottom</item> 

    <item name="colorPrimary">@color/orange_dark</item> 
    <item name="colorPrimaryDark">@color/orange_dark</item> 
    <item name="colorAccent">@color/gray_light</item> 
</style> 

E utilizzare nuova finestra di dialogo (contesto, R.theme.BottomOptionsDialogTheme);

+0

Non è meglio usare 'Snackbar' nella tua situazione? –

+0

Grande uomo! Cercherò! : D –

risposta

17

Cambia la tua linea:

Dialog d = new Dialog(this); 

a:

Dialog d = new Dialog(this, R.style.DialogTheme); 

e aggiungere nella vostra styles.xml con parent corrispondente alla propria versione del tema.

<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog"> 
    <!-- Customize your theme here. --> 
    <item name="android:windowBackground">@null</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowIsFloating">false</item> 
</style> 

Ma nella vostra situazione può essere meglio usare Snackbar a mio parere. Here è un tutorial.

+1

Non funziona. A proposito di Snackbar, come posso usare uno Snackbar personalizzato? Come posso definire un layout personalizzato su Snackbar? Ho bisogno di un elenco di opzioni ... –

+0

Controlla la mia modifica. Funzionerà ora. –

+0

Funziona bene. Grazie! : D –