APIデモの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;
。。。
Corey Tragerによる編集:
上記は間違いなく私を正しい方向に向けました。OnScrollListener.onScrollの処理はonScrollStateChangedよりもうまく機能することがわかりました。onScrollSgtaetChangedのcaseステートメントを削除し、すべての状態変更を処理しても、一部のテキストのサイズが変更されませんでした。しかし、onScrollを使用すると、動作するように見えます。
したがって、一見機能しているように見えるコードは次のようになります。
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);
}
}