Fix flicker for Mobile data & Wi-Fi page
Both "Mobile data usage" & "Non-carrier data usage". By, 1. Add header in onCreate() instead of onViewCreated() 2. Keep the space for Spinner, and preload initial cycles 3. Keep the space for 3 usage summaries Bug: 191730864 Test: manual Change-Id: I8c309c5f51ce6290383a2d10f75e41d0f207d61a
This commit is contained in:
@@ -31,6 +31,8 @@ public class SpinnerPreference extends Preference implements CycleAdapter.Spinne
|
||||
private AdapterView.OnItemSelectedListener mListener;
|
||||
private Object mCurrentObject;
|
||||
private int mPosition;
|
||||
private View mItemView;
|
||||
private boolean mItemViewVisible = false;
|
||||
|
||||
public SpinnerPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
@@ -63,12 +65,24 @@ public class SpinnerPreference extends Preference implements CycleAdapter.Spinne
|
||||
@Override
|
||||
public void onBindViewHolder(PreferenceViewHolder holder) {
|
||||
super.onBindViewHolder(holder);
|
||||
mItemView = holder.itemView;
|
||||
mItemView.setVisibility(mItemViewVisible ? View.VISIBLE : View.INVISIBLE);
|
||||
Spinner spinner = (Spinner) holder.findViewById(R.id.cycles_spinner);
|
||||
spinner.setAdapter(mAdapter);
|
||||
spinner.setSelection(mPosition);
|
||||
spinner.setOnItemSelectedListener(mOnSelectedListener);
|
||||
}
|
||||
|
||||
void setHasCycles(boolean hasData) {
|
||||
setVisible(hasData);
|
||||
if (hasData) {
|
||||
mItemViewVisible = true;
|
||||
if (mItemView != null) {
|
||||
mItemView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void performClick(View view) {
|
||||
view.findViewById(R.id.cycles_spinner).performClick();
|
||||
|
Reference in New Issue
Block a user