2017-06-29 5 views
0

Ich habe eine Listenansicht und jede Zeile wird nach dem Aufblasen der folgenden Ansicht angezeigt. Es ist ein LinearLayout und es funktioniert gut, bis ich jeder Textansicht (die eine Spalte in meiner Liste ist) die gleiche Größe geben. Wenn ich eine dieser Breiten ändere, bekomme ich unerwartete Ergebnisse. Zum Beispiel, wenn ich 0.5 in die erste textView (genannt "test") setze, erwartete ich, dass textView viel kleiner ist, aber es ist umgekehrt. Also habe ich versucht mit 3, aber wieder sehr unerwartetem Verhalten. Also, wenn ich möchte, dass die erste textView viel kleiner als die anderen 4 ist, wie kann ich das tun?Unterschiedliche Spaltengröße für eine Listenansicht in Xamarin

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="30dp" 
    android:paddingLeft="5dp" 
    android:paddingTop="2dp"> 
<TextView 
    android:text="Test" 
    android:layout_width="match_parent" 
    android:layout_weight="3" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:textColor="#333333" 
    android:id="@+id/testView" /> 
<TextView 
    android:text="Name" 
    android:layout_width="match_parent" 
    android:layout_weight="1" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:textColor="#333333" 
    android:id="@+id/nameView" /> 
<TextView 
    android:text="Surname" 
    android:layout_width="match_parent" 
    android:layout_weight="1" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:textColor="#333333" 
    android:id="@+id/surnameView" /> 
<TextView 
    android:text="Age" 
    android:layout_width="match_parent" 
    android:layout_weight="1" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:textColor="#333333" 
    android:id="@+id/ageView" /> 
<TextView 
    android:text="Profession" 
    android:layout_width="match_parent" 
    android:layout_weight="1" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:textColor="#333333" 
    android:id="@+id/professionView" /> 

Antwort

1

Wenn ich irgendwelche jener Breite ändern erhalte ich unerwartete Ergebnisse.

Der Grund, warum Sie unerwartete Ergebnisse erhalten, ist, dass Sie jede TextViewlayout_width Eigenschaft auf match_parent gesetzt. Die document sagte, dass:

Kinder Ansichten, die einen Gewichtswert angeben können, und dann alle verbleibenden Platz in der Ansicht Gruppe wird im Verhältnis ihrer erklärten Gewicht Kinder zugeordnet.

Wir können sehen, dass die layout_widt Eigenschaft für jeden TextView in Ihrem Layout zu wrap_content setzen soll. Es bedeutet die Breite des TextView gleich der ursprünglichen Breite (android: layout_width =warp_content) zuzüglich des Anteils des verbleibenden Platzes. Genau wie this.

+0

Vielen Dank für Ihre Antwort. Nur ein bisschen verwirrt, bitte entschuldige mich für weitere Fragen. Mein Ziel ist es, die erste textView ("Test") viel kleiner als die anderen 4 textViews zu machen. Nehmen wir an, der Inhalt des ersten textView ist nur * oder leer, also maximal 1 Zeichen. Ich möchte, dass die anderen 4 textViews den verbleibenden Platz gleichmäßig ausfüllen. Sollte ich android: layout_height = "wrap_content" für die erste und android: layout_weight = "1" für die anderen verwenden? – opt

+0

Ja, löschen Sie einfach die Eigenschaft android: layout_weight in der ersten TextView. –

+0

@opt, hast du dieses Problem gelöst? –

Verwandte Themen