3

getView メソッド内で、特定の子ビューを取得したいと考えています。getCount を呼び出すことで、アダプターが複数のアイテムを保持していることがわかります。

getCount();

JavaDocによると:

public abstract int getCount () 
Added in API level 1
How many items are in the data set represented by this Adapter.

今私のgetViewメソッドで:

public View getView(final int position, View convertView, ViewGroup parent) {

   View lastAddedItem = parent.getChildAt(getCount()-1);
   if(lastAddedItem == null)  {
     Log.w("ListAdapter", "View is null");
   }

}

このメッセージは常に に表示されますLogCat。これは、取得しようとしているビューが であることを意味しますNull

私もこれを試しました:

View lastAddedItem = parent.getChildAt(parent.getChildCount()-1);

ViewGroupでは、オブジェクトから特定のビューを取得するにはどうすればよいでしょうか?

4

2 に答える 2

3

getCount を呼び出すことで、アダプターが複数のアイテムを保持していることがわかります。

はい、そうですが、アダプターの ( AdaptergetCount()で項目を返す) メソッドは、 with の子を取得することとは関係ありません(これは で現在を返すため、使用する必要があります)。ListViewgetChildAt()getChildCount()Views ViewGroup

lastAddedItem = parent.getChildAt(parent.getChildCount()-1);

getView()これは、null 以外のビュー (メソッドによって返された最後のビュー) を返す必要があります。

ViewGroup 内の特定のビューをアニメーション化したいだけです

リスト行 (またはその行の一部) が表示されたときにアニメーション化する場合は、スクロール リスナーを登録しListView、ターゲット ビューが画面に表示されたときにそこからアニメーションを開始します。

于 2013-03-04T12:06:42.660 に答える
0

残りのアダプターをどのように実装したかはわかりませんが、正しい方法で実装している場合、私が正しい場合、親にはデバイスの画面に表示されているビューのみが含まれ、プルダウンするたびにリストをプルアップすると、それらのビューのコンテンツが変更されるため、Null が取得されます。

達成したいこと (ビューをアニメーション化する) は、実行時に実行し、現在画面に表示されているビューをアニメーション化する必要があるかどうかを確認する必要があります。

それが役に立てば幸い。

于 2013-03-04T12:03:38.687 に答える