11

Androidで拡張可能なリストを開くときにアニメーションを追加する方法はありますか?ユーザーが展開可能なリストをクリックしたときに、スライド式の引き出しを開いているようなアニメーション/効果が得られるようにしたいと思います。

完全に開くまでゆっくりと動きます。

4

5 に答える 5

4

運がないので、検索に多くの時間を費やしました。既存のソリューションは十分にスムーズではありません。レイアウトが 2 つのボタンよりも複雑な場合、遅延が発生します。

ListAdapterそのため、ビュー全体をにキャッシュしBitmap、ビュー自体ではなく、キャッシュされたビューでアニメーションを実行する独自のものを作成しました。それははるかに速く動作します。

ここにあります:https://github.com/dmitry-zaitsev/ExpandableAdapter

良いニュースは、大量のコードを書き直す必要がないことです。my をExpandableAdapterアダプターに巻き付けて、トグル ボタンのように機能するビューの ID と、2 番目のコンテンツを保持するビューの ID を指定するだけです。レベル:

new ExpandableAdapter(context, yourAdapter, R.id.switch, R.id.holder);

それだけです。

于 2012-12-08T09:16:28.967 に答える
2

私はこれとまったく同じ問題を抱えていました。そして、私はそれを完全に修正しました。github にオープンソース化しました。 https://github.com/tjerkw/Android-SlideExpandableListView

基本的に、このプロジェクトの依存関係を Android プロジェクトに含めます。そして、あなたListAdapterをにラップしますSlideExpandableListAdapter。ラッパーは、アニメーション付きのスライド機能を .xml ファイルに追加しますListView

お役に立てば幸いです。私はすでに 2 つのプロジェクトで使用しています。

于 2012-06-22T21:52:16.253 に答える
1

だから私がやったことは、通常のものを使用してListViewから onListItemClick でアニメーションを実行することです。アニメーションは、私がこのリンクで行っていることと似ています: Android animate drop down/up view right

ただし、行ビューの一部のみです。行ビューは、xml で次のように実装されます。

<somelayout>
    <normal>
    </normal>
    <expanded>
    </expanded>
</somelayout>

通常は展開せずに使用されます。展開がアクティブになると、展開されたものがなくなるのではなく、表示されるように設定されます。閉じるときに再び消えるように設定することを制御し続ける必要があります(これは、リサイクルされる変換ビューに設定されていることに注意してください)。

必要に応じてさらに明確にすることができます。これは、非常に多くのコードを入れるだけです。

于 2012-04-02T20:55:50.120 に答える
0

それが私がこの状況でしたことです。

ObjectAnimator objectAnimator = ObjectAnimator.ofPropertyValuesHolder(list1, PropertyValuesHolder.ofInt("bottom", currentlistHeight,currentlistHeight*2 ));

これにより、listView の高さが 2 倍になり、アニメーション化されます。現在のリストの高さをZEROに設定した場合。これは引き出しのように機能します。

于 2012-12-08T12:49:18.470 に答える