2012-04-26 3 views
1

私はExpandableListViewの子をアニメーションで表示させようとしています。 Android animate drop down/up view proper2.2でExpandableListView子をアニメーション化する

と私:私は、Android 2.2 APIを使用していますので は、私はここからもらったアニメーションを使用していexpandGroup(groupPos INT、ブールアニメーション)方法

を使用することはできません

public View getChildView(int groupPosition, int childPosition, boolean isLastChild, 
     View convertView, ViewGroup parent) { 

      ... 

    ExpandCollapseAnimation animation = new ExpandCollapseAnimation(convertView, 500, 0); 
    convertView.setAnimation(animation); 
    return convertView; 
} 

私はExpandableListViewのグループをクリックすると、最初のそれはアニメーションを持つすべてのチャイルズを示し、その後、すぐに拡大ん:「このような私のExpandableListViewアダプタのgetChildView方法で私のconvertViewに設定するm個私のようなすべての子どものアニメーションnt。

アニメーションを表示する必要があります。 ヘルプは非常に役に立ちます。

答えて

0

要するに、その非常に難しく、多くの人々はこれをすることができないと言います。これは、アンドロイドのListView/ExpandableListViewの欠点の1つです。気づいた場合は、ExpandableListViewでexpandGroup(int groupPosition)メソッドを呼び出すと、2番目のパラメータ(アニメーション化するかどうかのブール値)を持つメソッドがあります。この2番目のアニメーションメソッドは、Android 2.3.3以降で子ビューをアニメートしたいと思っている人たちにはあまり役立たない、レベル14以降です。

なぜなら、Javaでは各行が次々と実行されるからです。だからあなたはグループビューを展開していて、次のラインはアニメーションラインです。それはちょうどJavaがどのようにそうです。しかし、グループビューの子を適切にアニメートするには、ExpandableListViewクラス内のメソッドをオーバーライドする必要があります。

私が遭遇した最善の回避策は、最初に子の高さを0ピクセルに設定することです。このようにしてアンドロイドOSがあなたのビューをレイアウトするとき、それはそこにあるかのように見えます。 0ピクセルから希望する高さに子供をアニメーション化します。助けることを望む!

+2

申し訳ありませんがJavaはそれとは関係ありません。また、「1行ずつ実行する」という議論は、コンピュータアーキテクチャの非常に単純な見方です。 – AngraX

関連する問題