ListViews mit eigenem Layout

  • Antworten:9
Andy N.
  • Forum-Beiträge: 3.112

01.03.2011, 20:15:47 via Website

Hallo,

die Layouts zusammenzubauen kostet mich nochmal den letzten Nerv (wenn jemand Tipps hat, wie man daran am besten ran geht, ich bin dankbar dafür).

Für die einzelnen Zeilen der ListView habe ich ein eigenes Layout erstellt, so weit so gut. Nur ist jetzt nicht mehr die ganze Zeile ein Button, sondern nur dort, wo auch Text ist. Weiß jemand woran das liegen könnte?

Gruß Andy

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

01.03.2011, 21:29:12 via Website

es kann niemand hellsehen.

zeig uns den code deines adapters xmls, dann kann dir auch geholfen werden.

swordiApps Blog - Website

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

02.03.2011, 00:23:51 via Website

Wenn der Button nur um den Text passt, dann wirst du als Breite wrap_content angegeben haben; versuchs mal mit fill_parent.

Ansonsten, wie Markus schon sagte, zeig mal das .xml

Antworten
Andy N.
  • Forum-Beiträge: 3.112

02.03.2011, 16:49:54 via Website

zB bei sowas:
1?xml version="1.0" encoding="utf-8"?>
2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:orientation="vertical"
4 android:layout_width="fill_parent"
5 android:layout_height="fill_parent" >
6
7 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
8 android:layout_width="wrap_content"
9 android:layout_height="wrap_content" >
10
11 <TextView android:id="@+id/textview1"
12 android:layout_width="fill_parent"
13 android:layout_height="fill_parent" />
14
15 <TextView android:id="@+id/textview2"
16 android:layout_width="fill_parent"
17 android:layout_height="fill_parent" />
18
19
20 </LinearLayout>
21
22 <TextView android:id="@+id/textview3"
23 android:layout_width="fill_parent"
24 android:layout_height="fill_parent" />
25</LinearLayout>

Ich hab es auch schon als RelativeLayout, dann aber genau das selbe, bzw wenn ich fill_parent verwende drückt es mir die 2. Textview aus dem Bild.

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

02.03.2011, 19:52:52 via Website

...und wo ist da der Button? ;)

Im Ernst:
* dein inneres LinearLayout hat keine orientation
* es enthält zwei Views, die beide die gesamte Fläche einnehmen sollen?
...

Was wolltest du denn in deinem Beispiel erreichen?
2 Views nebeneinander und eine darunter?
Oder drei Views untereinander?

Antworten
Andy N.
  • Forum-Beiträge: 3.112

02.03.2011, 20:24:38 via Website

Das ist erst grob ein Muster, wollte aber nicht weiter machen, bevor das nicht richtig funktioniert.

Das ist ein Layout für die Listview, als dieses Layout beschreibt die einzelnen Zeilen und wird im SimpleCursorAdapter geladen.

Die orientation ist per default horizontal, eine Angabe ist hier nicht nötig.

Nur ist bei dem Beispiel nicht die gesamte Zeile anklickbar, sondern nur der Text.

— geändert am 02.03.2011, 20:25:21

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

02.03.2011, 21:15:14 via Website

mal rein logisch nachgedacht

du hast ein linearlayout das horizontal ausgerichtet ist

dann legst du 2 textfelder rein
beide haben als breite die volle breite.

na wie soll das gehen?

da wird nur das erste angezeigt, welches die volle breite einnimmt. das 2 wird daneben gelegt, aber ist ja nicht mehr sichtbar dann

swordiApps Blog - Website

Antworten
christian mock
  • Forum-Beiträge: 10

03.03.2011, 10:01:27 via Website

probier mal
1historyListView.setItemsCanFocus(false)
; könnt sein, daß deine textfelder focusable sind und dadurch dem top-level-linearlayout den focus wegnehmen...

HTH,

cm.

Antworten
Andy N.
  • Forum-Beiträge: 3.112

03.03.2011, 12:30:27 via Website

Ich hab den Fehler gefunden, es lag am "fill_parent".
Das gehört in die ListView, das Layout welches dort hinein geladen wird ist egal.

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

03.03.2011, 20:01:58 via Website

Ich hab den Fehler gefunden, es lag am "fill_parent".

Aha...

and.dev:
es enthält zwei Views, die beide die gesamte Fläche einnehmen sollen?


Markus:
dann legst du 2 textfelder rein
beide haben als breite die volle breite.

Wozu fragst du dann, wenn du die Antworten eh nicht liest?

Antworten