2013-06-10 3 views
2

아래 그림과 같이보기 사이의 수직 간격을 동일하게 만드는 방법은 무엇입니까?Android BaseAdapter 관심있는 스타일

(내가 무엇을 가지고) enter image description here

(내가 무엇이 필요) enter image description here

나는 "사람들의 각각의 팽창있는 LinearLayout의 높이와 놀아 시도했습니다 타일 ​​"이지만, 이것을 알아낼 수는 없습니다.

+0

, 그래서 안드로이드 레이아웃 및 JQuery와 같은 기술이 아니다. android-layout은 네이티브 앱의 XML 요소를 나타내며 jquery는 네이티브 앱에 속하지 않습니다. 그래서, 무엇을 만들고 있습니까? – cbrulak

+0

내가 가지고있는 스크린 샷에서 알 수 있듯이, 기본 Android 앱을 제작하고 있습니다. 내가 찾고있는 대답은 jQuery 임포트를 포함하지 않을 것이라는 점을 깨닫는다. jQuery Masonry (플러그인)가 이후의 효과와 동일한 효과를 얻으므로, Pasonerest 스타일을 얻는 방법을 알고있는 사람이라면 누구나 나를 도울 수있어. –

+0

네, 그렇지 않으면 스크린 샷에서 명확하지 않았습니다. 그렇지 않은 경우 설명을 요청하지 않았을 것입니다. 둘째, jquery 플러그인이 자바 스크립트에서이를 수행하는 방식으로 자바에서 안드로이드로 이식 할 수 없습니다. 정말로 도움이 필요한 경우 몇 가지 코드를 게시하고 시도한 짧은 목록을 게시하는 것이 좋습니다. – cbrulak

답변

6

이 라이브러리를 확인할 수 있습니다. 그것은 베타 상태입니다 :

AntipodalWall

Web

+1

스크롤은이 라이브러리에서 매우 느립니다. –

1

우리는 안드로이드의 기본 RecyclerView가 RecyclerView의 레이아웃 매니저 변경하여 단순히 대표자 : 벽돌 레이아웃을 구현하게 이에 대한 외부 라이브러리를 필요로하지 않습니다

mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); 
RecyclerAdapter adapter = new RecyclerAdapter(this); 
mRecyclerView.setAdapter(adapter); 

차갑다. 그것은 매우 쉽지만 LinearLayout의 마진은 효과가없는 것처럼 보입니다. 여기에 빠른 수정이 있습니다.

SpacesItemDecoration decoration = new SpacesItemDecoration(16); 
mRecyclerView.addItemDecoration(decoration); 

SpacesItemDecoration 클래스 :

public class SpacesItemDecoration extends RecyclerView.ItemDecoration { 
private final int mSpace; 

public SpacesItemDecoration(int space) { 
    this.mSpace = space; 
} 

@Override 
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { 
    outRect.left = mSpace; 
    outRect.right = mSpace; 
    outRect.bottom = mSpace; 

    // Add top margin only for the first item to avoid double space between items 
    if (parent.getChildAdapterPosition(view) == 0) 
     outRect.top = mSpace; 
    } 
} 

Github link of example

좋아

my final Results