2017-11-08 4 views
0

RecyclerView(アイテムをオンまたはオフに切り替えるため)には、すべてのリストアイテムに標準の変更されていないSwitchクラスがあります。通常、Androidのスイッチは、スイッチが所定の位置にスライドされ、小さなバブルアニメーションが表示される、素敵なデフォルトアニメーションを持っています。私の場合、スイッチはアニメーションなしで最終位置にジャンプするだけです。ここでは私のレイアウトです:スイッチ - Androidでデフォルトのアニメーションを有効にする方法

<Switch 
    android:id="@+id/alarm_toggle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentEnd="true" 
    android:layout_centerVertical="true" 
    android:checked="true" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    android:animateLayoutChanges="true" 
    android:padding="10dp" /> 

プロパティandroid:animateLayoutChanges="true"は影響しません。 Android MとOで試しました。標準のアニメーションを有効にするにはどうすればよいですか?

+0

スイッチを切り替えると、Javaコード(特に 'notifyDataSetChanged() 'などと呼ばれるもの)がトリガーされますか? –

+0

実際、はい、AsyncTaskで実行される長時間実行される操作がありますが、どうやらUIスレッドを何とかブロックしているようです。私はコードをコメントアウトし、アニメーションは動作しています。回答を投稿してください、私はそれを受け入れます。ありがとう! –

答えて

0

Switchを実行すると、任意のJavaコードが実行されるため、アニメーションの再生の有無に影響する可能性があります。おそらく、(またはそれに類するもの)と呼ばれるものがあり、RecyclerView全体を即座に再描画します。あるいは、あなたは誤ってUIスレッドをブロックしているかもしれません。アニメーションがどのような種類のものであっても妨げられます。

関連する問題