GridView布局文本填充问题和空单元格

时间:2012-12-16 05:09:21

标签: android android-layout android-gridview

我有一个GridView,文本单元格总是垂直填充, 除了一些奇怪的原因,属性Refer,可能是RDA或AI,仅在RDA,AI看起来不可见时显示(我的表 Refer 中的表没有空单元格)。

请参阅此屏幕截图以便更好地理解 enter image description here

使用此方法填充GridView

private void populateGrid(){
    Cursor c = dba.getNutriData():
    startManagingCursor(c);

    String[] from = new String[] { dba.Nutrient, dba.Intake, dba.Limit, dba.Refer};
    int[]   to = new int[] { R.id.txtNutrient, R.id.txtIntake, R.id.txtLimit, R.id.txtRefer};

    SimpleCursorAdapter sca = new SimpleCursorAdapter(this, R.layout.grid_row, c, from, to);

    grid.setAdapter(sca);
}

我使用这个GridView布局

       <GridView
            android:id="@+id/tabellaDieta"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fitsSystemWindows="false"
            android:gravity="start"
            android:numColumns="1"
            android:scrollingCache="true"
            android:stretchMode="columnWidth"
            android:textAlignment="textStart" >

        </GridView>

这是gridrow布局

<?xml version="1.0" encoding="utf-8"?>

<TableLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
  <TableRow android:layout_gravity="left">

  <TextView
      android:id="@+id/colNome"
      android:layout_width="50px"
      android:layout_height="wrap_content"
      android:layout_gravity="left"
      android:layout_weight="1"
      android:gravity="left|start"
      android:padding="5px"
      android:textColor="@color/white"
      android:textSize="12dp" />

  <TextView
      android:id="@+id/colDose"
      android:layout_width="50px"
      android:layout_height="wrap_content"
      android:layout_gravity="left"
      android:layout_weight="1"
      android:gravity="left|start"
      android:padding="5px"
      android:textColor="@color/greenlight"
      android:textSize="12dp" >

</TextView>

  <TextView
      android:id="@+id/colLimite"
      android:layout_width="50px"
      android:layout_height="wrap_content"
      android:layout_gravity="left"
      android:layout_weight="1"
      android:gravity="left|start"
      android:padding="5px"
      android:textColor="@color/orange"
      android:textSize="12dp" />

  <TextView
      android:id="@+id/colRiferimento"
      android:layout_width="50px"
      android:layout_height="wrap_content"
      android:layout_gravity="left"
      android:layout_weight="1"
      android:gravity="left|start"
      android:padding="5px"
      android:textColor="@color/light_sky"
      android:textSize="12dp" >

</TextView>

  </TableRow>
</TableLayout>

1 个答案:

答案 0 :(得分:4)

android:layout_weight="1"和此行android:padding="5px"以及此行android:numColumns="1"的值非常关键。

删除weightpadding行并增加columns

的数量来对其进行测试

此外,您已将textView的宽度android:layout_width="50px"固定为WrapContent