code

Pinterest와 같은 Android 이기종 gridview?

codestyles 2020. 12. 25. 09:54
반응형

Pinterest와 같은 Android 이기종 gridview?


Android에서 레이아웃과 같은 Pinterest를 만들 수 GridView있습니까? 사용하여 이미지 갤러리를 만들고 GridView싶지만 좋은 솔루션인지 확실하지 않습니다. 나는 세 가지를 만들고 싶지 않습니다 LinearLayouts(이 솔루션이 좋지 않다고 생각합니다 : Pinterest 스타일의 listview 또는 android의 gridview )

어떤 아이디어;)?

여기에 이미지 설명 입력


다음과 같이 레이아웃 만들기

<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); 
}

산출:

여기에 이미지 설명 입력


나는 이것도 가지고 놀았지만 (LinearLayout 사용) 결국 메모리 소비에 많은 문제가있었습니다 (특히 항목을 다시로드해야 할 때). 두 개의 동기화 된 ListView 를 사용하는 간단한 솔루션을 결정했습니다 . 이렇게 하면 많은 도움이되는 내부 캐싱이용할 수 있습니다 . 이렇게하려면 목록을 동기화 하는 OnTouchListenerOnScrollListener 를 사용해야했습니다 . 예를 들면 다음과 같습니다.

https://github.com/vladexologija/PinterestListView

여기에 이미지 설명 입력


Pinterest와 같은 그리드보기를 구현하는 데 유용한 라이브러리 :


For Recent visitors to this question , I would suggest using RecyclerView with StaggedGridLayoutManager. It's having more than enough functions and flexibility.


A standalone helper for synchronizing scrolling of 2 ListViews: https://gist.github.com/yanchenko/6179793


I am using this lib: https://github.com/huewu/PinterestLikeAdapterView.

It works pretty well. The only issue I have is that the setOnItemClickListener and setOnItemLongClickListener are a bit buggy so I set the listeners directly on the convertView.


This library comes from the Etsy application: https://github.com/etsy/AndroidStaggeredGrid

ReferenceURL : https://stackoverflow.com/questions/11736658/android-heterogeneous-gridview-like-pinterest

반응형