Höhe des Android PreferenceActivity-Elements
-
28-10-2019 - |
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>
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