wake-up-neo.com

android listview artikelhöhe

Warum habe ich, wenn ich SimpleCursorAdapter für ListView verwende, eine Elementhöhe in ListView? listview image

(Mein Code basiert auf this )

Aber bei der Verwendung von Arrays haben Listview-Elemente eine große Höhe 

listview big

(Ich lerne Listview basierend auf this )

Zeilenlayout für Artikellistenansicht ist

<?xml version="1.0" encoding="utf-8"?>
<TextView Android:id="@+id/text1"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"/>

Meine Frage ist, warum es einen Unterschied in den Zeilenhöhen gibt, wenn ArrayAdapter und SimpleCursorAdapter verwendet werden.

51
olegi
  Android:textAppearance="?android:attr/textAppearanceLarge" 

schien keine Wirkung zu haben. 

  Android:minHeight="?android:attr/listPreferredItemHeight" 

hat die Höhe für mich geändert

131
Bamboo

Der Trick für mich bestand nicht darin, die Höhe einzustellen, sondern die MinHöhe. Dies muss auf die Stammansicht des Layouts angewendet werden, das Ihr benutzerdefinierter Adapter zum Rendern jeder Zeile verwendet.

35
Evan

Sie müssen das Layout der Listenelemente mit einem Abstand füllen, damit an den Rändern des Elements Platz hinzugefügt wird (das Erhöhen der Schriftgröße macht dies nicht).

<?xml version="1.0" encoding="utf-8"?>
<TextView Android:id="@+id/text1"
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="wrap_content" 
    Android:layout_height="wrap_content"
    Android:padding="8dp" />
10
afollestad

Ich habe so etwas gemacht: 

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View view = super.getView(position, convertView, parent);

    TextView textView = (TextView) view.findViewById(Android.R.id.text1);
    textView.setHeight(30);
    textView.setMinimumHeight(30);

    /*YOUR CHOICE OF COLOR*/
    textView.setTextColor(Color.BLACK);

    return view;
}

Sie müssen die beiden Felder textView.setHeight (30); .__ einfügen. textView.setMinimumHeight (30); oder es ändert sich nichts. Für mich hat es funktioniert & ich hatte das gleiche Problem.

4
omnisius

Die Höhe der Listenansichtselemente wird basierend auf ihrem Inhalt angepasst. Im ersten Bild kein Inhalt. so ist die Höhe sehr gering. Im zweiten Bild wird die Höhe basierend auf der Textgröße erhöht. Weil Sie Android angegeben haben: layout_height = "wrap_content".

1
spr

Hier sind meine Lösungen; Es ist mein getView () in der BaseAdapter-Unterklasse:

public View getView(int position, View convertView, ViewGroup parent)
{
    if(convertView==null)
    {
        convertView=inflater.inflate(R.layout.list_view, parent,false);
        System.out.println("In");
    }
    convertView.setMinimumHeight(100);
    return convertView;
}

Hier habe ich die minimale Höhe von ListItem auf 100 gesetzt;

0
Rakin Afser

Dies ist meine Lösung (Es gibt ein verschachteltes LinearLayout):

<?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" >

    <LinearLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:orientation="vertical" >

        <TextView
            Android:id="@+id/item"
            Android:layout_width="match_parent"
            Android:layout_height="47dp"
            Android:background="@drawable/box_arrow_top_bg"
            Android:gravity="center"
            Android:text="全部收支"
            Android:textColor="#666"
            Android:textSize="16sp" />
    </LinearLayout>

</LinearLayout>
0
Praise Song