0

これは私を数日間悩ませてきました。FrameLayoutレイアウト内の要素の1つが移動して、メニューが表示されます。必要に応じてコードを貼り付けることができます。これは私のプレイコードであり、スタイルを使用していないため、少し時間がかかります。私は逸脱します...

ユーザーが特定のボタンを押すと、別のストックの上に重ねられstartAnimationたカスタムを呼び出します。ボタンをもう一度押すと、カスタムが元の場所に戻り、メニューが非表示になります。LinearLayoutLinearLayout.LinearLayout

LinearLayoutレイアウトが停止して最終的なアニメーション位置に留まるように、オーバーライドするカスタムを作成する必要がonAnimationEndありました(これは、StackOverflowでここで尋ねられた他のいくつかの質問に基づいて見つかりました)。

この問題は、ユーザーが表示されているメニュー項目の1つを実際に押したときに発生します。たとえば、項目の1つは、表示されたリストをソートまたは逆ソートします。notifyDataSetChanged呼び出した直後にBasicAdapter画面が再描画され、メニューが非表示になっているようです。メニューを閉じるコードはありません。リストが再描画するように指示されたときに、アクティビティ全体が再作成またはリセットされるようなものです。

また、API 10(Gingerbread、2.3)以降を対象としているのではActivityなく拡張していることも指摘しておく必要があります。ListActivity.

ポインタをお持ちの方がいらっしゃいましたら、よろしくお願いいたします。私はこれについて何日も頭を悩ませてきました、そしてそれは私を夢中にさせています。さらに情報を提供できるかどうか教えてください。

onAnimationEnd編集:メソッド のオーバーライドに関するSOの投稿は次のとおりです。AndroidのTranslateAnimationはアニメーション後にリセットされます

4

1 に答える 1

0

どのアイテムのメニューが自分で開いたかを記録しますか?そうでない場合は、UIシステムに記憶を任せることを意味します。つまり、この情報が失われるか、(アイテムの順序を変更したために)役に立たなくなるため、すべてのアイテムが初期状態に戻ります。解決策は、メニューの開いた/閉じた状態をリスト内の各データに関連付けることです。その後、アダプターのgetViewメソッドが呼び出されたときに、正しいUI状態を再構築できます。

于 2012-12-31T02:54:49.490 に答える