私は自分の中で1つのアイテムをアニメーション化しようとしてListView
いますが、これはちょっと難しいことがわかりました。しかし、グーグルを行った後、組み合わせたコードスニペットをいくつか思いついたのですが、ビューを返すために自分ListView
のを呼び出そうとすると、nullが返されます。getChildAt
public void animateSingleItemInListView() {
final Animation animBounce = AnimationUtils.loadAnimation(context, R.anim.bounce);
int totalItemsInListView = lastCases.getCount();
int wantedPosition = 1; // Whatever position you're looking for
int firstPosition = lastCases.getFirstVisiblePosition() - lastCases.getHeaderViewsCount(); // This is the same as child #0
int wantedChild = wantedPosition - firstPosition;
// Say, first visible position is 8, you want position 10, wantedChild will now be 2
// So that means your view is child #2 in the ViewGroup:
int childs = lastCases.getChildCount();
if (wantedChild < 0) {
Log.w("UPDATEUI", "Unable to get view for desired position, because it's not being displayed on screen.");
return;
}
// Could also check if wantedPosition is between listView.getFirstVisiblePosition() and listView.getLastVisiblePosition() instead.
View wantedView = lastCases.getChildAt(firstPosition);
wantedView.setAnimation(animBounce);
}
コードから:
は10を返します。totalItemsInListView
これは、私のの正しい行数ですListView
。整数firstPosition
はもちろん0ですが、getChildAt()
メソッドはnullのみを返します。どうして?どうすれば最初のものを入手できView
ますListView
か?