2014-05-11 2 views
0

목록보기에서 오프셋을 설정해야합니다. 처음에는 ScrollBy (X, Y)를 사용하여이를 달성했지만 목록보기를 터치하자마자 스냅 샷이 제로 (마이너스 오프셋)가되었습니다.ListView에서 스크롤 오프셋을 설정하는 방법

어떻게이 오프셋을 유지할 수 있습니까?

+0

? 'ListView' 상단에 빈 공간이 있습니까? –

+0

그래, 실제로 눈금보기를 사용하고 있지만 머리글 막대를 초과 할 수 있도록 오프셋을 설정하려고합니다. 머리글 막대를 스크롤 할 때 스크롤 할 때 더 많은 gridview 내용을 볼 수 있습니다. . 그러나 어떤 위치에서 스크롤하면 헤더 바를 다시 스크롤 할 수 있습니다. 트위터의 앱과 같은 효과입니다. 그러나 나는 어떤 종류의 상쇄를 설정하지 않고는 이것을 할 수 없다. 나는 그 대신에 터치 이벤트를 가로 채기로 놀려고한다. – serenskye

답변

4

ListView 상단에 빈 공간이 있으면 패딩으로 처리합니다.

레이아웃 XML

android:clipToPadding="false" 
android:paddingTop="25dp" 

또한 프로그래밍을 할 수 귀하의 ListView이 추가하지만, 가능하면 XML에 그 일을 항상 바람직합니다 : 당신은 오프셋 무엇을 의미합니까

float paddingTopInDp = 25.0f; 

Resources resources = getResources(); 
float paddingTopInPixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, paddingTopInDp, resources.getDisplayMetrics()); 
listView.setClipToPadding(false); 
listView.setPadding(0, (int)(paddingTopInPixels + 0.5f), 0, 0); 
+0

스크롤을 사용하여 패딩을 조정해야한다면 레이아웃이 바뀔 수 있으므로이 방법이 효과가 있을지 모르겠다. 무능한. 어쩌면 내가 성취하려고하는 것을 오해 한 것일까 요? – serenskye

+0

아니요, 무슨 뜻인지 이해합니다. 비슷한 것을 만들었습니다. 실제로 패딩을 변경할 필요가 없습니다. scrolOffset에 따라 오버레이를 조정해야합니다. –

+0

목록보기가 채워지면 헤더가 숨길 때 내용이 화면을 채우지 않습니다 – serenskye

관련 문제