Zwei ListView nebeneinander

Ich habe zwei ListView. Und ich muss sie nebeneinander stellen. Aber das Problem ist – nur eine Liste ist sichtbar. (Anmerkung: Die zweite Liste befindet sich auf der rechten Seite des Layouts und kann höchstens 1 Charakter haben und die erste Liste wird erweitern, um den Rest des Bildschirms zu füllen.)

Hilf mir bitte.

Das Layout ist so.

------------ | | | | | | | | | | | | | | | | | | | | | | | | | | | ------------ 

 <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="vertical" > <ListView android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="true" /> </LinearLayout> 

Shaiful

  • Erkennung, welches ausgewählte Element (in einem ListView) das ContextMenu (Android)
  • Warum sind ListView und RecyclerView focusableInTouchMode?
  • Set OnClick Listener auf Knopf innerhalb der Listenansicht in android
  • ListView "zurückkehren" beim Scrollen
  • Schatten von oben und unten von ListView in android entfernen?
  • Wie bekomme ich notifyDatasetChanged (), um mit einem ListAdapter zu arbeiten?
  • Einstellen von ListView-Element, das vom Adapter überprüft wird
  • Bester Platz zum HinzufügenHeaderView in ListFragment
  • 8 Solutions collect form web for “Zwei ListView nebeneinander”

    Ich denke, diesen Code wird es gut funktionieren. Sie müssen Layout_weight = 0.5 verwenden und die Dinge funktionieren perfekt.

     <LinearLayout android:layout_width="fill_parent" android:layout_height="match_parent" android:layout_marginBottom="60dp" android:layout_marginTop="60dp" android:orientation="horizontal" android:id="@+id/linearLayout2"> <ListView android:id="@+id/sportsList" android:layout_width="match_parent" android:layout_height="wrap_content" android:entries="@array/sports_array" android:layout_weight="0.5"/> <ListView android:id="@+id/sportsList_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:entries="@array/sports_array" android:layout_weight="0.5"/> </LinearLayout> 

    Also, im Grunde verwenden zwei Listenansichten in einem linearen Layout und geben das Gewicht jedes Layouts auf 0,5. Ich denke das hilft.

    Ich kann nicht glauben, dass es in drei Jahren niemand gekommen ist. Vielleicht wird jemand anderes diese Frage haben.

    Das Problem ist, dass ListView ist gierig, wenn es um horizontalen Raum kommt. Sie können es sagen, dass es mit layout_width='0dp' und was auch immer layout_weight Zahlen, die Sie sich am besten fühlen. Unten ist ein Beispiel für leftListView bei ¾ und rightListView bei ¼. Ich habe es versucht, es geht gut

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <ListView android:id="@+id/leftListView" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight=".75" /> <ListView android:id="@+id/rightListView" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight=".25" /> </LinearLayout> 

    Eine andere Alternative ist, dass der gleiche Layout Trick aber mit FrameLayouts, dann erstellen Sie Fragmente für jede ListView. Es ist schwerer, aber man könnte Wert finden, wenn die Fragmente herumliegen.

    Ihr erster LinearLayout sagt fill_parent für Höhe und Breite, also wird es den ganzen Raum aufnehmen. Verwenden Sie stattdessen eine einzelne LinearLayout, die auf horizontal eingestellt ist, und legen Sie dann Ihre beiden ListViews dort hinein. Die Höhe sollte wrap_content sein. Die Breite kann eingestellt werden, aber du willst (nicht fill_parent aber), und du kannst minWidth und layout_weight verwenden, um besser zu spezifizieren.

    Ich würde vorschlagen, ein LinearLayout mit Attribut android:orientation="horizontal"
    Dann setze 2 LinearLayouts mit android:orientation="vertical" in die horizontale.
    Jetzt fülle die Vertikale einmal mit deinem Zeug.

    Für weitere Informationen siehe hier 🙂

    Hoffe das hilft!

    BEARBEITEN:
    Versuche dies:

     <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="75dp"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"> **YOUR STUFF** </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"> android:layout_weight="2"> **YOUR STUFF** </LinearLayout> </LinearLayout> 

    Versuchen Sie, ein relatives Layout oder Tabellenlayout als das Root-Layout zu verwenden und dann die 2 Listenansichten als Kinder des Rootors zu positionieren.

    Setzen Sie die beiden in eine horizontale LinearLayout, wie mehrere haben vorgeschlagen. Für die Liste auf der linken Seite setzen Sie die layout_width auf 0 und layout_weight auf 1; Für die Liste auf der rechten Seite set_width to wrap_content und layout_weight auf 0 setzen.

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <ListView android:id="@+id/list_view2" android:layout_width="100dp" android:layout_height="475dp" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentTop="true" /> <ListView android:id="@+id/list_view" android:layout_width="306dp" android:layout_height="match_parent" android:layout_alignParentEnd`enter code here`="true" android:layout_alignParentRight="true" /> </LinearLayout> 

    OK. Ich sehe, dass der Thread tot ist, aber ich weiß, wie man das macht.

    Meine Layout-XML-Datei:

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <RelativeLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <RelativeLayout android:id="@+id/relativeLayout1" android:layout_width="55dp" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" > </RelativeLayout> <ListView android:id="@+id/ListView01" android:layout_width="192px" android:layout_height="match_parent" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_toRightOf="@+id/relativeLayout1" android:layout_weight="1" > </ListView> </RelativeLayout> <RelativeLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <RelativeLayout android:id="@+id/relativeLayout2" android:layout_width="55dp" android:layout_height="match_parent" android:layout_alignParentRight="true" android:layout_alignParentTop="true" > </RelativeLayout> <ListView android:id="@+id/ListView02" android:layout_width="192px" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_toLeftOf="@+id/relativeLayout2" android:layout_weight="1" > </ListView> </RelativeLayout> </LinearLayout> 

    Zweitens mein Code von Aktivität:

      @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); setContentView(R.layout.main); ListView lv1=(ListView)this.findViewById(R.id.ListView01); ListView lv2=(ListView)this.findViewById(R.id.ListView02); File fCurrDirOne = new File ("/"); File fCurrDirTwo = new File ("/"); String[] mListOfFilesOne = fCurrDirOne.list(); String[] mListOfFilesTwo = fCurrDirTwo.list(); ArrayAdapter list1 = new ArrayAdapter<String>( this, R.layout.itemlistview,mListOfFilesOne); ArrayAdapter list2 = new ArrayAdapter<String>( this, R.layout.itemlistview,mListOfFilesTwo); lv1.setAdapter(list1); lv2.setAdapter(list2); } 

    Genießen)

    PS Sie sollten Layuot für Sie Liste Elemente, meine namens itemlistview.xml, und Sie können android.R.layout.simple_list_item_1 als Standard verwenden.

    Meine itemlistview.xml Datei

     <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="20dp" > </TextView> 
    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.