Heim >Java >javaLernprogramm >Wie implementiert man ein Zeilenumbruch-Layout für Widgets in Android?
Zeilenumbrechendes Widget-Layout für Android
Problem:
In einer Android-Anwendung Möglicherweise verfügen Sie über Daten, die in Widgets unterteilt werden können, die jeweils ein Wort darstellen. Um diese Daten anzuzeigen, möchten Sie die Widgets in Zeilen anordnen, ähnlich einem Textabsatz, sodass sie bei Bedarf in die nächste Zeile umgebrochen werden können.
Vorgeschlagene Lösung:
Implementieren Sie ein benutzerdefiniertes Layout namens PredicateLayout, das das Zeilenumbruchverhalten von Text nachahmt. Dieses Layout verwaltet untergeordnete Ansichten, indem es sie in Zeilen anordnet und umbricht, wenn das Ende der Zeile erreicht ist.
Codebeispiel:
public class PredicateLayout extends ViewGroup { private int line_height; // ... @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // ... for (int i = 0; i < count; i++) { // ... final LayoutParams lp = (LayoutParams) child.getLayoutParams(); // ... line_height = Math.max(line_height, child.getMeasuredHeight() + lp.height); // ... } this.line_height = line_height; // ... } // ... }
Verwendung:
Innerhalb einer Aktivität können Sie dieses benutzerdefinierte Layout wie folgt verwenden:
public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { // ... PredicateLayout l = new PredicateLayout(this); // ... setContentView(l); } }
Ergebnis:
Das PredicateLayout ordnet das effektiv an Widgets in Zeilen, die bei Überschreitung der Breitenbeschränkung in die nächste Zeile umbrechen. Dies ermöglicht die Anzeige von Daten als umgebrochene textähnliche Absätze.
Das obige ist der detaillierte Inhalt vonWie implementiert man ein Zeilenumbruch-Layout für Widgets in Android?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!