Avoid animation flashing and fix padding.

Bug: 6446203
Change-Id: Icea64d5d30d894a6438af9278bc2d10b8b921d29
This commit is contained in:
Jeff Sharkey
2012-05-04 11:47:29 -07:00
parent d86d44b745
commit 92811829b3
5 changed files with 32 additions and 33 deletions

View File

@@ -18,8 +18,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:paddingLeft="@*android:dimen/preference_item_padding_side"
android:paddingRight="@*android:dimen/preference_item_padding_side"
android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
android:paddingRight="?android:attr/listPreferredItemPaddingRight"
android:paddingTop="8dip"
android:paddingBottom="8dip"
android:columnCount="3">

View File

@@ -20,8 +20,8 @@
android:layout_height="40dip"
android:orientation="horizontal"
android:gravity="center_vertical"
android:paddingLeft="@*android:dimen/preference_item_padding_side"
android:paddingRight="@*android:dimen/preference_item_padding_side">
android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
android:paddingRight="?android:attr/listPreferredItemPaddingRight">
<TextView
android:layout_width="wrap_content"

View File

@@ -18,20 +18,22 @@
android:id="@+id/app_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:orientation="vertical"
android:visibility="gone">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@*android:dimen/preference_item_padding_side"
android:layout_marginRight="@*android:dimen/preference_item_padding_side"
android:layout_marginLeft="?android:attr/listPreferredItemPaddingLeft"
android:layout_marginRight="?android:attr/listPreferredItemPaddingRight"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginRight="@*android:dimen/preference_item_padding_inner"
android:layout_marginTop="8dip"
android:layout_marginRight="8dip"
android:orientation="vertical">
<ImageView
@@ -82,8 +84,8 @@
android:id="@+id/app_settings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@*android:dimen/preference_item_padding_side"
android:layout_marginRight="@*android:dimen/preference_item_padding_side"
android:layout_marginLeft="?android:attr/listPreferredItemPaddingLeft"
android:layout_marginRight="?android:attr/listPreferredItemPaddingRight"
android:layout_marginTop="16dip"
android:layout_marginBottom="16dip"
android:text="@string/data_usage_app_settings" />

View File

@@ -41,8 +41,8 @@
android:id="@+id/usage_summary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@*android:dimen/preference_item_padding_side"
android:paddingRight="@*android:dimen/preference_item_padding_side"
android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
android:paddingRight="?android:attr/listPreferredItemPaddingRight"
android:paddingTop="8dip"
android:paddingBottom="8dip"
android:textAppearance="?android:attr/textAppearanceSmall" />
@@ -52,8 +52,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:paddingLeft="@*android:dimen/preference_item_padding_side"
android:paddingRight="@*android:dimen/preference_item_padding_side"
android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
android:paddingRight="?android:attr/listPreferredItemPaddingRight"
android:paddingBottom="8dip"
android:text="@string/data_usage_empty"
android:textAppearance="?android:attr/textAppearanceSmall" />

View File

@@ -394,9 +394,6 @@ public class DataUsageSummary extends Fragment {
mUsageSummary = (TextView) mHeader.findViewById(R.id.usage_summary);
mEmpty = (TextView) mHeader.findViewById(android.R.id.empty);
// only assign layout transitions once first layout is finished
mListView.getViewTreeObserver().addOnGlobalLayoutListener(mFirstLayoutListener);
mAdapter = new DataUsageAdapter(mUidDetailProvider, mInsetSide);
mListView.setOnItemClickListener(mListListener);
mListView.setAdapter(mAdapter);
@@ -574,25 +571,22 @@ public class DataUsageSummary extends Fragment {
}
/**
* Listener to setup {@link LayoutTransition} after first layout pass.
* Build and assign {@link LayoutTransition} to various containers. Should
* only be assigned after initial layout is complete.
*/
private OnGlobalLayoutListener mFirstLayoutListener = new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mListView.getViewTreeObserver().removeOnGlobalLayoutListener(mFirstLayoutListener);
private void ensureLayoutTransitions() {
// skip when already setup
if (mChart.getLayoutTransition() != null) return;
mTabsContainer.setLayoutTransition(buildLayoutTransition());
mHeader.setLayoutTransition(buildLayoutTransition());
mNetworkSwitchesContainer.setLayoutTransition(buildLayoutTransition());
final LayoutTransition chartTransition = buildLayoutTransition();
chartTransition.setStartDelay(LayoutTransition.APPEARING, 0);
chartTransition.setStartDelay(LayoutTransition.DISAPPEARING, 0);
chartTransition.setAnimator(LayoutTransition.APPEARING, null);
chartTransition.setAnimator(LayoutTransition.DISAPPEARING, null);
chartTransition.disableTransitionType(LayoutTransition.APPEARING);
chartTransition.disableTransitionType(LayoutTransition.DISAPPEARING);
mChart.setLayoutTransition(chartTransition);
}
};
private static LayoutTransition buildLayoutTransition() {
final LayoutTransition transition = new LayoutTransition();
@@ -1176,6 +1170,9 @@ public class DataUsageSummary extends Fragment {
}
mUsageSummary.setText(getString(summaryRes, totalPhrase, rangePhrase));
// initial layout is finished above, ensure we have transitions
ensureLayoutTransitions();
}
private final LoaderCallbacks<ChartData> mChartDataCallbacks = new LoaderCallbacks<