Refine animation to remove strange reshuffling animation

The issue happens mainly because two animations(move + change) running
on the same view interrupt with each other. When ItemAnimator runs the
move animation, it will change the translationX&Y in a time period.
When the change animation occurs in this period, it gets this translation
value and calculates a non-zero deta, then it would run an unnecessary
move animation, which causes the strange reshuffling.

In this cl, I skip the translation value only for the tile view when
there is pending animation.

I also add scroll operation for conditions view to make it scroll to
top after condition change.

Bug: 33839777
Bug: 33839780
Test: make -j40 RunSettingsRoboTests

Change-Id: I2152f93f756ae20cf754d6fca3525119cb4ceb1f
This commit is contained in:
jackqdyulei
2016-12-28 14:15:03 -08:00
parent d5afb5a60c
commit 0fd7190fdd
3 changed files with 24 additions and 5 deletions

View File

@@ -263,6 +263,7 @@ public class DashboardSummary extends InstrumentedPreferenceFragment
public void onConditionsChanged() {
Log.d(TAG, "onConditionsChanged");
mAdapter.setConditions(mConditionManager.getConditions());
mDashboard.scrollToPosition(0);
}
private class SuggestionLoader extends AsyncTask<Void, Void, List<Tile>> {