안드로이드 개발 질문/답변
(글 수 45,052)
재사용코드를 하던안하던 getView()메서드안에 공통으로들어가는 소스입니다.
if (position % 3 == 1) {
LayoutParams lp = (LayoutParams)
linear.getLayoutParams();
lp.topMargin =
100;
linear.setLayoutParams(lp);
}
//position의 나머지가 1이될경우 마진을 주게 처리를하였습니다.
문제점 1. 재사용코드없이가면..
View view = convertView;
view = inflater.inflate(R.layout.mygrid, parent,
false);
* 그림1 처럼나오다가 빠르게 스크롤하면 그림2 처럼 바뀌어버립니다.
또는 빠르게스크롤후 터치를 한번해주면 그림1로 복구 됩니다.
이거를 그림1 로만 나오게계속하고싶거든요
문제점 2. 재사용코드를쓰면
if (convertView == null) {view = inflater.inflate(R.layout.mygrid, parent, false);
} else {
view = (View) convertView;
}
* 그림1 처럼나오다가 스크롤하면 그림3 처럼 바뀌어버립니다.
터치를 한번해주면 그림1로 복구되지않습니다.
=========================================================
이처럼 이미지가들어가는거라 재사용코드를 넣어서 효율적인 코딩을하고싶은데요.
제마음대로안되니가 좀답답하네요..
재사용코드를쓰면 View가꼬여서
position은 제대로들어오는것같은데
View를재사용해서 다른데다가도 Margin이들어가는것같습니다..
어찌해야될까요...ㅠㅠ
해당페이지링크해주시거나 코드를주시면 더더욱감사드립니다!




재사용시 가운데 이미지가 아닐때 margin을 0으로 바꿔주도록 하셨나요?
LayoutParams lp = (LayoutParams) linear.getLayoutParams();
lp.topMargin = (position % 3 == 1) ? 100 : 0;
linear.setLayoutParams(lp);