LinearLayout权重在Listview中不起作用

时间:2016-11-01 14:47:44

标签: android listview android-linearlayout

我搜索过并发现很多人都报告了这个问题。 这些是我经历过的一些链接:

以及其他一些

这些链接提出了以下解决方案

  1. 替换mInflater.inflate(resID,parent,false);使用mInflater.inflate(resID,null,false);
  2. 将列表视图设为 机器人:layout_width = “match_parent”   机器人:layout_height = “WRAP_CONTENT” 我甚至试过尝试使用fill_parent,但它没有用。
  3. Listview内部另一个线性布局
  4. 在相对布局中行xml并使用线性布局
  5. 对于水平方向,请使用android:layout_width =“0dp”。当我这样做时,列表视图不会被弹出。它仍然是空白的
  6. 我无法在Android文档中找到任何针对此特定问题的内容。

    我的列表视图:

      android:id="@+id/lst_stocks"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/row_heading"
        android:layout_marginTop="@dimen/margin_5"
    

    我的其他xml文件:

     <?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="wrap_content"
    android:background="@drawable/border"
    android:orientation="horizontal"
    android:weightSum="3">
    
    
    <TextView
        android:id="@+id/txt_rating"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:padding="@dimen/margin_10"
        android:text="Rating"
        android:textAlignment="center"
        android:textColor="@color/colorPrimaryDark" />
    
    <TextView
        android:id="@+id/txt_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ellipsize="end"
        android:maxEms="10"
        android:padding="@dimen/margin_10"
        android:singleLine="true"
        android:text="Companay"
        android:textAlignment="center"
        android:textColor="@color/colorPrimaryDark"
        />
    
    <TextView
        android:id="@+id/txt_sector"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ellipsize="end"
        android:maxEms="10"
        android:padding="@dimen/margin_10"
        android:singleLine="true"
        android:text="Sector"
        android:textAlignment="center"
        android:textColor="@color/colorPrimaryDark" />
    </LinearLayout>
    

    我也在其他地方使用这个xml文件,它可以很好地工作。

    • 所以我错过了什么。为什么线性布局权重不起作用?
    • 有效使用Listviews内的LinearLayouts的指南

    P.S。我已经在两个独立的手机上运行文件,而不是在模拟器上运行。

2 个答案:

答案 0 :(得分:0)

如果您想使用重量来设置TextView的高度,那么您应该这样做:

<TextView
    android:id="@+id/txt_sector"
    android:layout_width="wrap_content"
    android:layout_height="0dp"   // Change is done here
    android:layout_weight="1"
    android:ellipsize="end"
    android:maxEms="10"
    android:padding="@dimen/margin_10"
    android:singleLine="true"
    android:text="Sector"
    android:textAlignment="center"
    android:textColor="@color/colorPrimaryDark" />`

同样,如果您要设置宽度,可以使用width="0dp"wieght="1"

答案 1 :(得分:0)

将TextView layout_width设为0dp。

    <?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="wrap_content"
    android:background="@drawable/border"
    android:orientation="horizontal"
    android:weightSum="3">


    <TextView
    android:id="@+id/txt_rating"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:padding="@dimen/margin_10"
    android:text="Rating"
    android:textAlignment="center"
    android:textColor="@color/colorPrimaryDark" />

    <TextView
    android:id="@+id/txt_name"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:ellipsize="end"
    android:maxEms="10"
     android:padding="@dimen/margin_10"
    android:singleLine="true"
    android:text="Companay"
    android:textAlignment="center"
     android:textColor="@color/colorPrimaryDark"
    />

  <TextView
  android:id="@+id/txt_sector"
   android:layout_width="0dp"
  android:layout_height="wrap_content"
   android:layout_weight="1"
  android:ellipsize="end"
  android:maxEms="10"
  android:padding="@dimen/margin_10"
  android:singleLine="true"
  android:text="Sector"
  android:textAlignment="center"
  android:textColor="@color/colorPrimaryDark" />
  </LinearLayout>