2010-03-10 3 views
2

ListAdapter 및 항목 선택 등을 사용할 수있는 것과 같이 ListView에있는 항목을 원하지만 그 중 ScrollView 부분을 원하지 않습니다. 그 부분을 다른 방식으로 구현하고 싶습니다 (왜 또는 어떻게하면이 질문의 핵심이 아니므로 "이유"를 묻지 마십시오).ScrollView에없는 ListView를 만들거나 ScrollView를 사용할 수 없도록 설정하는 방법은 무엇입니까?

ListView가 ScrollView에 없거나 스크롤을 사용할 수 없도록 설정하는 방법이 있습니까?

답변

1

ListViewScrollView에 없습니다. ListView이 본질적으로 스크롤됩니다. 간단한 API를 통해 스크롤을 사용 중지 할 수 있다고 생각하지 않습니다. 그렇다면 ListView의 하위 클래스를 만들고 스크롤 동작을 재정의하는 방법을 찾고 ListView을 복제하고 스크롤 동작을 없애거나 원하는 방식으로 렌더링하는 자신의 AdapterView을 작성하십시오.

+0

확인 : 당신은 미리의 높이를 계산하는 쉬운 방법이없는 경우

, 당신은 onMeasure을 무시하고 그것을 자신의 높이 사양을 제공하여 당신을 위해 그 일에 ListView을 속일 수 내가 그 중 하나를 할거야. – synic

6

이렇게하는 또 다른 방법은 요리 한 사용자 지정 스크롤 솔루션에 ListView을 두는 것입니다. ListView의 높이를 목록보기의 LayoutParams을 사용하여 모든 행만큼 정확하게 설정하면 일반보기처럼 작동하고 스크롤 할 수 없습니다. 따라서 다른 스크롤보기에 추가 할 수 있습니다. 이 방법의 어려움은 미리 목록의 높이를 알아야하므로 각 행의 높이를 알아야한다는 것입니다. 또한 이렇게하면 모든 행이 한 번에 생성되므로보기 재생 기능을 사용할 수 없습니다. ,

// Calculate height of the entire list by providing a very large 
// height hint. But do not use the highest 2 bits of this integer; 
// those are reserved for the MeasureSpec mode. 
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, 
     MeasureSpec.AT_MOST); 
super.onMeasure(widthMeasureSpec, expandSpec); 
+0

여러분의 의견은 믿을 수 없을만큼 도움이되었습니다. 내가 너에게 경의를 표한다. –

관련 문제