List13 데모는 OnScrollStateChanged를 사용하여 비슷한 기능을 수행합니다. 그래도 더 좋은 방법이있을 수 있습니다.
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
case OnScrollListener.SCROLL_STATE_IDLE:
mBusy = false;
int first = view.getFirstVisiblePosition();
int count = view.getChildCount();
for (int i=0; i<count; i++) {
TextView t = (TextView)view.getChildAt(i);
if (t.getTag() != null) {
t.setText(mStrings[first + i]);
t.setTag(null);
}
}
mStatus.setText("Idle");
break;
. . . 코리 Trager BY
편집 :
위는 확실히 올바른 방향으로 절 지적했다. OnScrollListener.onScroll 처리가 onScrollStateChanged보다 효과적이라는 것을 발견했습니다. onScrollSgtaetChanged에서 case 문을 제거하고 모든 상태 변경을 처리하더라도 일부 텍스트 크기가 조정되지 않았습니다. 그러나 onScroll을 사용하면 모든 것이 작동하는 것 같습니다.
그래서, 내 보이는 작업 코드는 다음과 같습니다 ListView가에서
public void onScroll(AbsListView v, int firstVisibleItem, int visibleCount, int totalItemCount)
{
ListView lv = this.getListView();
int childCount = lv.getChildCount();
for (int i = 0; i < childCount; i++)
{
View v = lv.getChildAt(i);
TextView tx = (TextView) v.findViewById(R.id.mytext);
tx.setTextSize(textSize);
}
}
어댑터의 텍스트 크기 또는 'ListActivity'를 저장하고 어댑터의 getView 메소드에서 텍스트 크기를 설정하십시오. –