안드로이드 개발 질문/답변
(글 수 45,052)
ListView에 넣은 Item이 7개라면 ListView의 row는 4개만 보여주고 스크롤로 7개 모두를 볼 수 있는 방법이 있을까요?
ListView의 높이를 강제로 조절해 놓기에는 Item의 개수가 동적이라 4개의 높이로 잡아 놨다가 Item이 2개가 되면 ListView아래 공간이 남아서 않될거 같아서요..
bindView가 계속 호출 되는데 이걸 조절 하면 될거 같은데.. 어렵네요.. ㅠ.ㅠ
ListView에서 최대로 보여주는 row개수를 정할 수 있나요? adapter는 cursor adapter를 사용하고 있습니다.
ListView의 높이를 강제로 조절해 놓기에는 Item의 개수가 동적이라 4개의 높이로 잡아 놨다가 Item이 2개가 되면 ListView아래 공간이 남아서 않될거 같아서요..
bindView가 계속 호출 되는데 이걸 조절 하면 될거 같은데.. 어렵네요.. ㅠ.ㅠ
ListView에서 최대로 보여주는 row개수를 정할 수 있나요? adapter는 cursor adapter를 사용하고 있습니다.
2010.02.24 17:52:12
질문 내용이 조금 헷갈리긴 하지만... 제가 알기로 ListView 의 Height 는 0 dp로 설정해도 별 문제 없이 작동하는 걸로 알고있습니다. 아이템 개수에 맞추어 자동으로 크기가 조절 되지요. 화면상에 표시되는 ListView 의 높이를 조절 하고 싶으시다면, ListView 가 포함된 Layout 내부에, ListView 아래쪽으로 Padding 으로 쓸만한, 적당한 뷰를 넣어주세요. 해당 Padding View 의 크기를 제외하고 ListView 가 화면에 표시될 겁니다. 한 화면에 표시되는 Item 의 개수는, 아답터에 넣어주신, ListView 의 개별 아이템을 정해서는 Layout 의 크기를 조절하시면 될 듯 합니다.
2010.02.24 18:25:41
답변해 주신 내용 중 후자 쪽이 제가 알고 싶은 부분인데요..
ListView의 개별 아이템을 정한다라는게 잘 이해가 않되요..
제가 하고 싶은 것은 ListView의 셀의 개수를 4개로 정해 놓고 DB에서 조회한 데이터의 개수가 4개이하면 ListView의 셀의 개수가 4개 이하로(데이터가 3개면 셀의 개수가 3개, 2개면 2개)되고 데이터의 개수가 4개 이상이라도 ListView의 셀의 개수는 늘어나지 않고 스크롤 바가 생기는거죠..(데이터가 5개라도 셀의 개수는 4개, 10개라도 4개)
이렇게 하고 싶은 거에요..
2010.02.24 19:17:29
음... ListView의 셀의 개수는 늘어나지 않고 스크롤 바가 생긴 다는 말이 잘 이해가 안되네요... ListView 의 작동이 원래 화면상에 표시할 수 있는 View 만큼만 화면상에 표시되고, 그 보다 item 수가 커지면 스크롤바가 생기지 않나요? 말씀하시는 상황과 일반적인 ListView 의 동작과 어떤 차이가 있는지 헷갈립니다. 만일, 한번에 화면상에 표시 할 수 있는 ListView 의 수를 정하시고 싶으신 거라면 Cursor Adapter 생성 시 인자로 넘겨주는 개발 Item View 생성 시 사용되는 Layout 의 Height 값을 적절히 조절 하시면 되지 않을까 합니다. (예를 들어 ListView 가 화면에 차지 하는 높이가 400dp 라면 하나의 ItemView 의 높이를 100dp 로 고정해 두시면 최대 4개 까지만 한 화면에 아이템이 보이게 되겠지요.)
2010.02.25 11:47:59
"ListView 의 작동이 원래 화면상에 표시할 수 있는 View 만큼만 화면상에 표시되고" <- 화면에 표시 할 수 있는 View 만큼 표시하는 것을 4개로 제한을 두고 싶습니다. 말씀해 주신 후자의 경우 View(높이 100dp)의 개수가 2개라면 ListView의 높이가 400dp이므로 ListView의 하단에 200dp만큼 공간이 남게 되서 ListView의 배경색이 View아래 남게되서 문제가 되서요..;; 그렇다고 매번 item의 개수를 체크해서 ListView의 높이를 수정 할 수도 없고 해서요.. 귀찮차나요.. ㅋ;;;
화면에 표시하는 View의 개수를 화면에 표시 할 수 있는 만큼 표시하는 것이 아닌 최대 4개로 제한을 두면서 ListView의 높이는 View의 개수만큼 동적으로 변하게 하고 싶습니다. item 4개가 넘으면 말씀하신것 처럼 스크롤바가 생기도록요.. item이 4개 이하면 ListView의 높이도 자동으로 줄어 들도록요..
화면에 표시하는 View의 개수를 화면에 표시 할 수 있는 만큼 표시하는 것이 아닌 최대 4개로 제한을 두면서 ListView의 높이는 View의 개수만큼 동적으로 변하게 하고 싶습니다. item 4개가 넘으면 말씀하신것 처럼 스크롤바가 생기도록요.. item이 4개 이하면 ListView의 높이도 자동으로 줄어 들도록요..
2010.02.25 13:14:10
음... 하고자 하시는 일이 어떤 내용인지 아직 헷갈리는 부분이 있습니다. "개수가 2개라면 ListView의 높이가 400dp이므로 ListView의 하단에 200dp만큼 공간이 남게 되서 ListView의 배경색이 View아래 남게되서 문제가 되서요" 라고 하셨는데, 이러한 경우 어떻게 작동하게 구현하고 싶으신건지 궁금하네요. 각 개별 ItemView 의 크기가 200dp 로 증가되서 ListView 를 꽉 채우는 걸 원하시는 건지, ListView 의 크기 자체가 200dp 로 줄어들고 따라서 ListView 하단에 위치한 또 다른 View 의 위치가 변화는 걸, 원하시는 건지 궁금합니다. 첫 번째 경우라면, CursorAdapter 를 상속받은 후, getView 를 적절히 Override 하시면 될 듯 싶고, 두 번째 경우라면 제 생각에는 귀찮더라도 동적으로 ListVew 의 높이를 수정해 주어야 되지 않을까 싶습니다.