In ListView wird nur erstes Element angezeigt?

M

MegaChroniX

Neues Mitglied
1
Hallo

Ich habe ein Problem mit einem Dynamischen Layout in Android.

Ich möchte in folgendem Layout erreichen, dass er mir eine Übersicht über Räume in einer Etage mit den darin liegenden Elementen (Fenster, Türen) gibt.

room.xml
HTML:
<?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="vertical" >
    <TextView
        android:id="@+id/textViewRoomHeader"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceLarge" />
    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
        <LinearLayout
            android:id="@+id/linearLayoutRoom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
        </LinearLayout>
    </ScrollView>
</LinearLayout>
Im LinearLayoutRoom sollen nun die Räume wie folge aufgezeige werden
Raumname(TextView)
Elemente (in ListView)


Code:
      TevtView titel = (TextView) findViewById(R.id.textViewRouteHeader);
      LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayoutRoom);

      titel.setText(getString(R.string.current_room, floor.getName()));

      TextView tv = null;
      ListView lv = null;
      for (Room r : floor.getRooms())
      {
         tv = new TextView(this);

         tv.setText(r.getName());
         layout.addView(tv);
         tv.setTextAppearance(this, android.R.style.TextAppearance_Large);

         lv = new ListView(this);
         lv.setAdapter(new RoomListAdapter(r.getElements(), this));
         lv.setOnItemClickListener(new OnItemClickListener()
         {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
            {
               Toast.makeText(FloorActivity.this, "ID: " + arg3, Toast.LENGTH_SHORT).show();
            }
            
         });

         layout.addView(lv);
      }
Der ListAdapter funktioniert richtig und gibt auch die Liste richtig zurück.
Es wird aber immer nur das erste Element in der Liste angezeigt.

Wie auf dem Screenshot zu sehen, ist am rechten Ende einer jeden Liste eine scrollbar, also wird ja die ganze liste dahinter liegen...

Teilliste.png


wie erreiche ich es, dass jede Liste in voller länge angezeigt wird?

PS: bitte nicht schimpfen über Layout etc. bin android neuling :blushing:
 
listview und scrollview vertragen sich nicht
 
ok, aber wie erreiche ich dann die listen "unterhalb" des sichtbaren display bereichs?
die listen an sich müssen ja nicht scrollable sein, werden ja vollständig dargestellt, sondern nur das gesamte layout
 
verzichte einfach auf listen und füge alle zeilen "händisch" ein.
 
oder du machst eine

expandablelistview

gruppen sind die räume
kinder sind die jetzigen listen.

dann hast auch das erreicht was du möchtest
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
10
Aufrufe
223
swa00
swa00
A
Antworten
10
Aufrufe
1.021
swa00
swa00
U
  • unerfahrenerAppEntwickler
Antworten
3
Aufrufe
705
swa00
swa00
Zurück
Oben Unten