0

私は自分の中で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か?

4

1 に答える 1

-1

使用してみてください

lastCases.getItemAtPosition(firstPosition)
于 2013-01-08T10:50:19.557 に答える