2015-07-04 22 views
11

Ich versuche, einen benutzerdefinierten Dialog zu erstellen, um eine Liste von Werten am unteren Bildschirmrand anzuzeigen.So entfernen Sie Dialogmargen?

Wie kann ich die Dialogränder entfernen?

Das möchte ich ... enter image description here

ich diese haben ... enter image description here

Dialog Code:

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(); 

gelöst! Bessere Lösung:

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

Und nutzen, um neuen Dialog (Kontext, R.theme.BottomOptionsDialogTheme);

+0

Es ist nicht besser, 'Snackbar' in Ihrer Situation zu verwenden? –

+0

Großer Mann! Ich werde es versuchen! : D –

Antwort

17

Ihre Linie ändern:

Dialog d = new Dialog(this); 

zu:

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

und fügen Sie in Ihrem styles.xml mit parent zu Ihrem Thema Version entspricht.

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

Aber in Ihrer Situation kann es besser sein, Snackbar meiner Meinung nach zu verwenden. Here ist Tutorial.

+1

Es funktioniert nicht. Über Snackbar, wie kann ich eine benutzerdefinierte Snackbar verwenden? Wie kann ich ein benutzerdefiniertes Layout für Snackbar definieren? Ich brauche eine Liste von Optionen ... –

+0

Überprüfen Sie meine Bearbeitung. Es wird jetzt funktionieren. –

+0

Funktioniert gut. Vielen Dank! : D –