如何使gridview不对称?

时间:2015-07-11 06:31:44

标签: android android-gridview

在我的应用程序中,我试图使我的gridview不对称,但我只能设置colums 2或3等等。任何其他选项使gridview不对称?以下是我的gridview代码,任何人都可以帮我这个吗?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#F3F3F3"
    >

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="150dp"

        />


    <GridView
        android:numColumns="2"
        android:gravity="center"
        android:stretchMode="columnWidth"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/allproduct_grid"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:horizontalSpacing="10dp"
        android:verticalSpacing="10dp"
        android:layout_marginTop="10dp"
        />

</LinearLayout>

我想要的是什么:

enter image description here

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

您没有任何原生布局或小部件来实现此目的。那么你在寻找什么 StaggeredGridView ,它允许它的项目具有可变的大小。

您可以执行以下任一操作: -

1)您可以使用thisthis库。它们使用起来非常简单。我已经使用了两者,我可以向你保证他们完美地完成了他们的工作。

2)您可以尝试使用Google发送的RecyclerView.StaggeredGridLayoutManager

示例代码看起来像这样,

ArrayList<DBObject> list =  new ArrayList<DBObject>()
collection = mongoDB.getCollection("locations");
cursor = collection.find();
while (cursor.hasNext()) {
  list.add(cursor.next());
}

希望它对你有所帮助。

答案 2 :(得分:0)

与所有这些无关.... 只需在适配器中的getView方法中复制它......

    if (position % 2 == 1) {    
     holder.testbtn.setVisibility(View.VISIBLE);    
     } else {
        holder.testbtn.setVisibility(View.GONE);
     }