Frage

Ich habe eine PreferenceActivity mit zwei Kontrollkästchen.Alles funktioniert ordnungsgemäß, aber ich habe ein Problem mit der Benutzeroberfläche.Nicht der gesamte Text des Kontrollkästchens passt in die Kontrollkästchenzeile.

Gibt es eine gute Möglichkeit, die Mindesthöhe für diese Kontrollkästcheneinstellungen festzulegen, ohne einen Wert fest zu codieren?

BEARBEITEN - XML ​​hinzufügen:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
   <CheckBoxPreference
      android:key="alarm_set"
      android:title="@string/set_alarm_title"
      android:defaultValue="true" />
   <CheckBoxPreference
      android:key="store_pages"
      android:title="@string/store_downloaded_pages_title"
      android:summary="@string/store_downloaded_pages"
      android:defaultValue="false" />
</PreferenceScreen>
War es hilfreich?

Lösung

Basierend auf Das Frage zur Textpräferenz mit dem gleichen Problem Ich verwende diese Klasse.

public class LongSummaryCheckBoxPreference extends CheckBoxPreference 
{ 
    public LongSummaryCheckBoxPreference(Context ctx, AttributeSet attrs, int defStyle) 
    { 
        super(ctx, attrs, defStyle);         
    } 

    public LongSummaryCheckBoxPreference(Context ctx, AttributeSet attrs) 
    { 
        super(ctx, attrs);   
    } 

    @Override 
    protected void onBindView(View view)
    {        
        super.onBindView(view); 

        TextView summary= (TextView)view.findViewById(android.R.id.summary); 
        summary.setMaxLines(4); 
    }        
} 

Im XML sieht es dann so aus.

    <com.iforpowell.android.ipbike.LongSummaryCheckBoxPreference android:key="@string/key_distance_line_enable"
        android:title="@string/title_distance_line_enable" android:summary="@string/summary_distance_line_enable"
        android:defaultValue="true" />
    <com.iforpowell.android.ipbike.LongSummaryCheckBoxPreference android:key="@string/key_altitude_line_enable"
        android:title="@string/title_altitude_line_enable" android:summary="@string/summary_altitude_line_enable"
        android:defaultValue="true" />

Ich habe genau das Gleiche für EditTextPreference, das das gleiche Problem mit maximal 2 Zeilen für die Zusammenfassung in Api <= 7 hat

Andere Tipps

Im XML können Sie die Höhe auf „wrap_content“ setzen.An diesem Punkt wird es so dimensioniert, dass es zu allem passt, was Sie hineingeben.Also etwas in dieser Richtung:

<CheckBox
    android:id="@+id/checkBox1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />

Das sollte helfen

Machen Sie es einfach so:

<!-- Application theme -->
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <!-- Min item height -->
    <item name="android:listPreferredItemHeight">10dp</item>
</style>

Weitere Stilattribute, die überschrieben werden können, finden Sie hier Layout der Präferenzelemente

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top