2 Stimmen

100% Höhe Android-ListView

Ich fange gerade an, Android-Apps zu entwickeln. Ich habe eine Layout-Frage. Ich möchte den Hauptbildschirm für meine App erstellen. Es handelt sich um ein Menü mit 7 Optionen, bei denen jede Option ein Symbol links, einen kurzen Text und einen Schalter links (Ein/Aus-Komponente) haben würde.

Ich habe es in einem ListView-Element geschrieben, ich habe einen einfachen Adapter mit diesem Layout erstellt:

Das Menü wird immer 7 Optionen haben, ich möchte, dass der ListView die Höhe des Bildschirms ausfüllt. Jedes Element mit der gleichen Höhe. Ist es möglich, das mit ListView? Oder wäre es vielleicht besser, das Menü außerhalb eines ListViews zu erstellen?

Ich habe über LinearLayout und die weight-Eigenschaft gelesen. Könnten Sie mir bitte helfen? Es ist mein erstes Layout, ich würde mich über jeden Rat freuen, welches Layout ich verwenden sollte.

Vielen Dank, beste Grüße!

P.S: Entschuldigen Sie mein Englisch.

1voto

Rotem Punkte 1472

Wenn Sie möchten, dass alle Elemente angezeigt werden (ohne Scrollen), dann hat ein ListView keinen Nutzen. Verwenden Sie stattdessen ein LinearLayout und setzen Sie den layout_weight jedes Menüelements auf 1.

1voto

Bae Punkte 872

Ich würde ein LinearLayout verwenden und darin alle Elemente platzieren, die angezeigt werden sollen...

So ähnlich wie das:

1voto

Bruno Mateus Punkte 1726

Wie die anderen bereits sagten, ist es besser, LinearLayout zu verwenden. Und wie du erwähnt hast, kannst du auch das weight-Attribut verwenden.

Gleichermaßen gewichtete Kinder

Um ein lineares Layout zu erstellen, in dem jedes Kind den gleichen Platz auf dem Bildschirm verwendet, setze die android:layout_height jeder Ansicht auf "0dp" (für ein vertikales Layout) oder die android:layout_width jeder Ansicht auf "0dp" (für ein horizontales Layout). Setze dann das android:layout_weight jeder Ansicht auf "1".

Da du versuchst, ein Menü zu implementieren, denke ich, dass der beste Ansatz ist, jedes RelativeLayout (mit TextView und ImageView) durch einen Button zu ersetzen. So wird dein Layout wie folgt aussehen:

 //Definiert die maximale Gewichtssumme

 // Methode zur Behandlung von onClick

In deiner Aktivität solltest du dieses Layout laden, indem du setContentView() verwendest, und du musst eine Methode handleOption implementieren, um das onClick-Ereignis jedes Buttons zu behandeln.

 public view handleOption(View view)
 {
     switch(view.getId()) ....
 }

So musst du nicht das onClickListener Interface implementieren, hast eine Methode für jeden Button und setzt den onClickListener für jeden Button.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X