2010-10-19 5 views
15

Ich versuche, 2 Listenansichten in mein Layout zu setzen. Das Problem ist, dass ich die Größe jeder Listenansicht nicht im Voraus weiß. Die erste Listenansicht könnte ein paar Einträge enthalten (0, 1, 2 bis etwa 10) und die zweite Listenansicht könnte viele Einträge (bis zu 100) enthalten.ANDROID: teilen Sie den Bildschirm in 2 gleich Teile mit 2 Listenansichten

Ich habe versucht, das Gewicht beiden Listviews auf 1 zu setzen, aber es hat nicht funktioniert:

=> Wenn die erste Listenansicht nur 1 Punkt hat und die zweiten 99, Sie nicht sehen, das erste Element von listview # 1 => es schrumpft so sehr (relativ zur Listenansicht # 2), dass man es nicht sieht.

Also ich denke jetzt, den Bildschirm in 2 gleich Teile (egal was/egal Größe der einzelnen Listenansicht) zu teilen und legen Sie die beiden Listenansichten in jedem Teil. Natürlich muss es auf jedem Gerät funktionieren ... Wie kann ich die Bildschirmgröße des Geräts erfassen, sie in zwei Teile aufteilen und die Größe der Listenansicht auf jede Hälfte des Bildschirms anpassen?

Hat jemand das schon gemacht? Gibt es eine andere Möglichkeit, zwei Listenansichten unterschiedlicher Größe auf dem gleichen Layout anzuzeigen (sollte ich einen scrollview verwenden? => Wenn der Benutzer das Ende der ersten Listenansicht erreicht, erscheint die zweite Listenansicht => ist das möglich ??)

Vielen Dank für Ihre Hilfe und jede Anregung ...

Hubert

+0

was ich meine in "Aufspalten der Bildschirm in 2 gleich Teile" ist eine Hälfte an der Spitze und eine Hälfte an der Unterseite, nicht links/rechts. (Dies ist keine gültige Option für mich, da die Elemente, die ich zeigen muss, bereits definiert sind) – Hubert

+0

Ich weiß nicht, wie es erreicht wird, weil eine Listview in Aktivität, muss eine ID Android: ID/Liste, da es ist eine Kennung, es können nicht zwei ähnliche in der gleichen Aktivität sein. Jemand, der weiser ist als ich, wird das erreichen können. – viv

+0

Ich habe es funktioniert - 2 Lisviews innerhalb der gleichen Aktivität (keine ListActivity aber eine "normale" Aktivität) => werfen Sie einen Blick auf Dow Jones PRO => Bildschirm "New 52 Wochen HIGH/LOW" ... – Hubert

Antwort

-4

Versuchen Größen in weichen Pixel (geräteunabhängig sind) zu setzen - wie "50SP" oder "100SP" - ich bin Sicher findest du passende

+3

Dies Antwort ist so weit von der richtigen Spur ... Wie hilft die Verwendung von SP bei allen Bildschirmgrößen? In der Tat gibt es keine Möglichkeit, die richtige Einheit zu finden, um den Bildschirm in zwei Hälften zu ... –

20

Ich musste einfach meine 2 Listenansichten in 2 separate lineare Layouts "kapseln" => diese 2 Linearlayout haben ein Gewicht von 1:

<LinearLayout android:layout_weight="1" 
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent"> 

       <ListView android:id="@+id/ListView_NASDAQ100" 
          android:layout_height="fill_parent" 
          android:layout_width="fill_parent"> 

       </ListView> 
    </LinearLayout> 

<LinearLayout android:layout_weight="1" 
       android:layout_height="fill_parent" 
       android:layout_width="fill_parent"> 

      <ListView android:id="@+id/ListView_from_52w_HIGHLOW" 
         android:layout_height="fill_parent" 
         android:layout_width="fill_parent"> 

      </ListView> 
</LinearLayout> 
+0

Wenn Sie dies in Aktion sehen möchten, heißt die App DOW JONES für Android oder NASDAQ 100 für Android. .. Wählen Sie den Button "52 Wochen HIGH/LOW" um diesen geteilten Bildschirm zu sehen! Prost, H. – Hubert

+0

Für jeden, der darüber stolpert, scheint das ADT-Plugin für Eclipse (v15) das nicht korrekt zu handhaben, aber es funktioniert, wenn es auf einem tatsächlichen Telefon läuft (und ich nehme an, Emulatoren). –

3
<LinearLayout 
     android:id="@+id/ListView_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:weightSum="1" > 

     <RelativeLayout 
      android:id="@+id/rl_ListView1" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.5" > 

      <ListView 
       android:id="@+id/lv1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" > 
       </ListView> 
     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/rl_ListView2" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.5" > 

      <ListView 
       android:id="@+id/lv2" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" > 
      </ListView> 

     </RelativeLayout> 
    </LinearLayout> 

erstellen Eltern Linear-Layout, eine weightsum definieren und aufgeteilt, dass in zwei unterschiedlichen relativen Layouts jeweils Gewichts die Hälfte der gesamten weightsum gleich, weil in relativ Layout Dinge verwaltet werden, einfach und richtig. Ich hoffe, das funktioniert für Sie

+0

aber ich möchte vertikale Orientierung, was soll ich tun? @Muhammad Zeshan – Banku

+1

was Sie mit vertikaler Ausrichtung meinen.können Sie etwas mehr erklären? –

+0

thnkx ich habe es getan ... :) – Banku