Altezza dell'articolo di Preferenceattività Android
-
28-10-2019 - |
Domanda
Ho una preferenceattività con due caselle di controllo. Tutto funziona correttamente, ma ho un problema dell'interfaccia utente; Non tutto il testo per la casella di controllo si adatta alla riga della casella di controllo.
C'è un bel modo per impostare l'altezza minima per queste preferenze della casella di controllo senza un valore hardcoding?
EDIT - Aggiunta di XML:
<?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>
Soluzione
Basato questo Domanda sulla preferenza di testo che ha lo stesso Iussue che uso questa classe.
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);
}
}
Nel XML sembra quindi questo.
<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" />
Ho esattamente la stessa cosa per EditTextPreference che ha lo stesso problema di un massimo di 2 righe per il riepilogo in API <= 7
Altri suggerimenti
Nel XML è possibile impostare l'altezza su "Wrap_Content". A quel punto lo ridimensionerà per adattarsi a qualsiasi cosa tu lo metta. Quindi, qualcosa in questo senso:
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CheckBox" />
Questo dovrebbe aiutare
Fallo in questo modo:
<!-- Application theme -->
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- Min item height -->
<item name="android:listPreferredItemHeight">10dp</item>
</style>
Un altro attributo di stile che può essere sovrascritto può essere trovato qui layout dell'articolo di preferenza