为什么GridView只显示一列?

时间:2013-11-20 12:22:23

标签: android gridview

我正在创建一个dinamically GridVew来显示图标和一些文本。我想要至少有2列,但它显示一个列,就像ListView一样。

这是我的GridView:

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/gridView1"
  android:numColumns="2"
  android:gravity="center"
  android:columnWidth="100dp"
  android:stretchMode="columnWidth"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" >

</GridView>

对于每一行,我都有这种布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" >

<ImageView
    android:id="@+id/row_icon"
    android:layout_width="150px"
    android:layout_height="150px"
    android:layout_marginRight="50px"
    android:src="@drawable/ic_launcher" >
</ImageView>

<TextView
    android:id="@+id/row_label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@+id/label"
    android:textSize="10sp"
    android:maxLines="2" >
</TextView>

</LinearLayout> 

每行都在我的自定义ArrayAdapter中隐藏:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
    TextView textView = (TextView) rowView.findViewById(R.id.row_label);
    ImageView imageView = (ImageView) rowView.findViewById(R.id.row_icon);
    textView.setText(values[position].getName());

    asyncDownloadAndSetImage(values[position].getInfo().getThumbnail(), imageView);

    return rowView;
}

试图调整布局,但它仍然只显示在这样的一列上:

Imgur

2 个答案:

答案 0 :(得分:0)

可能你的问题是

//GridView 
android:columnWidth="100dp"

//ImageView
android:layout_width="150px"
android:layout_height="150px"

图像大于放入每列大小的空间。

使用

测试这些更改

排。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" >

<ImageView
    android:id="@+id/row_icon"
    android:layout_width="100px"
    android:layout_height="100px"
    android:layout_marginRight="50px"
    android:src="@drawable/ic_launcher" >
</ImageView>

<TextView
    android:id="@+id/row_label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@+id/label"
    android:textSize="10sp"
    android:maxLines="2" >
</TextView>

</LinearLayout>

答案 1 :(得分:0)

问题在于我的活动正在延长ListActivity而不是Activity,因为这是从ListView转换而来的