为什么列表视图项高度没有变化?

时间:2015-03-06 13:01:44

标签: android listview

我的列表视图设置为:

    <ListView
        android:id="@+id/listView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/border"
        android:padding="5dp">

    </ListView>

我根据xml文件加载项目:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/topbar"
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:layout_alignParentTop="true"
    android:layout_margin="0px"
    android:orientation="horizontal"
    android:padding="0dp" >

        <TextView
            android:id="@+id/place"
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_margin="0px"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:textSize="40sp" />

        <LinearLayout
            android:id="@+id/right"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="0px"
            android:gravity="center_horizontal"
            android:orientation="vertical"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:textSize="25sp" >

            <TextView
                android:id="@+id/score"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:layout_weight="1"
                android:gravity="center" 
                android:textAlignment="viewEnd"
                android:textSize="25sp" />

            <LinearLayout
            android:id="@+id/bottom"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center_horizontal"
            android:orientation="horizontal"
            android:textSize="25sp" >

            <TextView
                android:id="@+id/time"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textSize="12sp" />
            <TextView
                android:id="@+id/username"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textSize="12sp" />
            </LinearLayout>
        </LinearLayout>
</LinearLayout>

由于某种原因,行android:layout_height="200dp"无效。无论我是写200dp还是20dp android都显示相同的项目高度。 我需要更改什么来获得我想要的物品高度?

2 个答案:

答案 0 :(得分:1)

View只有LayoutParam,如果它在布局中。 在没有父布局的情况下给视图充气的那一刻,任何XML layout_属性都会被忽略。

所以要回答这个问题,你必须用父母来扩充视图,如下所示:

public View getView (int position, View convertView, ViewGroup parent) {
    if(convertView == null) {
        convertView =
              LayoutInflater.from(parent.getContext())
                   .inflate(R.layout.layout_name, parent, false);
    }
}

答案 1 :(得分:0)

您的LinearLayout ID为 topbar 两个主要孩子,其中TextView ID为地方LinearLayout为id 正确。您未在此子项上设置任何高度值。它们设置为wrap_content。因此,他们将扩展内容。如果您的内容很短,则不会扩展到200dp。

  • 您可以做的第一件事是将这两个孩子layout_height设置为 fill_parent
  • 如果您不想要或不喜欢第一个解决方案,那么您应该在layout_weight上研究LinearLayout用法。检查Linear Layout and weight in Android
祝你好运。