Categories
Android

Padding and margin in DialogPreference

I implemented a Time Picker in the preference using the code found here where the class TimePreference extends the class DialogPreference but I found a lack of alignment with the other preference items because of a different setting of the margins and/or padding.

For example the following xml file:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <CheckBoxPreference
        android:defaultValue="false"
        android:key="download_preference"
        android:summaryOff="off"
        android:summaryOn="on"
        android:title="Schedule forecast download" />

    <eu.lucazanini.arpav.meteo.preference.TimePreference
        android:defaultValue="08:30"
        android:dependency="download_preference"
        android:dialogLayout="@layout/time_picker_preference"
        android:key="download_time_pref"
        android:summary="08:30"
        android:title="Download time" />

</PreferenceScreen>

which contains a CheckBoxPreference and a TimePreference and it has the following screenshot:

preferences_0

where the style for the TimePreference is different from that one for the CheckBoxPreference.

I solved the problem by replacing the constructor

public TimePreference(Context context, AttributeSet attrs) {
    this(context, attrs, 0);
}

con

public TimePreference(Context context, AttributeSet attrs) {
    this(context, attrs, android.R.attr.dialogPreferenceStyle);
}

Now the preference items have the same style:

dialogPreferenceStyle

One reply on “Padding and margin in DialogPreference”

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.