在我的应用程序中,我试图使我的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>
我想要的是什么:
答案 0 :(得分:2)
我希望这个图书馆可以帮到你: https://github.com/felipecsl/AsymmetricGridView https://github.com/maurycyw/StaggeredGridViewDemo
答案 1 :(得分:2)
您没有任何原生布局或小部件来实现此目的。那么你在寻找什么 StaggeredGridView ,它允许它的项目具有可变的大小。
您可以执行以下任一操作: -
1)您可以使用this或this库。它们使用起来非常简单。我已经使用了两者,我可以向你保证他们完美地完成了他们的工作。
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);
}