是否可以在Android上使用GridView
创建类似Pinterest的布局?我想使用GridView
创建图像库,但我不确定它是否是一个好的解决方案。我不想创建三个LinearLayouts
(我认为这种解决方案不好:Android上的Pinterest样式列表视图或网格视图)
有什么好的想法吗?;)
是否可以在Android上使用GridView
创建类似Pinterest的布局?我想使用GridView
创建图像库,但我不确定它是否是一个好的解决方案。我不想创建三个LinearLayouts
(我认为这种解决方案不好:Android上的Pinterest样式列表视图或网格视图)
有什么好的想法吗?;)
我也曾尝试过使用LinearLayout,但最终遇到了很多内存消耗的问题(特别是在重新加载项目时)。我采用了一个简单的解决方案,它使用了两个同步的ListViews,这样我就可以利用内部缓存,这对我的情况有很大帮助。
为了实现这一点,我不得不使用OnTouchListener和OnScrollListener来同步列表。下面是一个例子:
https://github.com/vladexologija/PinterestListView
<ScrollView...>
<LinearLayout....
android:id="@+id/linear1"
orientation="horizontal">
<LinearLayout....
android:id="@+id/linear2"
android:layout_weight="0.33"
orientation="vertical">
<LinearLayout....
android:id="@+id/linear3"
android:layout_weight="0.33"
orientation="vertical">
<LinearLayout....
android:layout_weight="0.33"
orientation="vertical">
</LinearLayout>
</ScrollView>
现在在布局中动态添加你的ImageView
linear1 = (LinearLayout) findViewById(R.id.linear1);
linear2 = (LinearLayout) findViewById(R.id.linear2);
linear3 = (LinearLayout) findViewById(R.id.linear3);
for(int i=0;i<n;i++)
{
ImageView iv = new ImageView(this);
iv.setImageResource(R.id.icon);
int j = count % 3; <----
if(j==0)
linear1.addView(iv);
else if(j==1)
linear2.addView(iv);
else
linear3.addView(iv);
}
输出结果:
实现类似Pinterest网格视图的一些有用的库:
对于最近查看此问题的访问者,我建议使用带有StaggedGridLayoutManager
的RecyclerView
。它具有足够的功能和灵活性。
我正在使用这个库:https://github.com/huewu/PinterestLikeAdapterView。
它运行得很好。我唯一遇到的问题是setOnItemClickListener
和setOnItemLongClickListener
有点不稳定,所以我将监听器直接设置到了convertView上。