am fee73ee2: Merge change 27411 into eclair

Merge commit 'fee73ee2d6eb3e875e39a64c410d6a1ff8508ad3' into eclair-plus-aosp

* commit 'fee73ee2d6eb3e875e39a64c410d6a1ff8508ad3':
  Cache inflated view to avoid inflation of layouts in preferences
This commit is contained in:
Suchi Amalapurapu
2009-09-28 10:14:53 -07:00
committed by Android Git Automerger

View File

@@ -102,6 +102,7 @@ public class Preference implements Comparable<Preference>, OnDependencyChangeLis
private int mLayoutResId = com.android.internal.R.layout.preference; private int mLayoutResId = com.android.internal.R.layout.preference;
private int mWidgetLayoutResId; private int mWidgetLayoutResId;
private boolean mHasSpecifiedLayout = false; private boolean mHasSpecifiedLayout = false;
private View mLayoutView;
private OnPreferenceChangeInternalListener mListener; private OnPreferenceChangeInternalListener mListener;
@@ -336,7 +337,7 @@ public class Preference implements Comparable<Preference>, OnDependencyChangeLis
if (!mHasSpecifiedLayout) { if (!mHasSpecifiedLayout) {
mHasSpecifiedLayout = true; mHasSpecifiedLayout = true;
} }
mLayoutView = null;
mLayoutResId = layoutResId; mLayoutResId = layoutResId;
} }
@@ -360,6 +361,7 @@ public class Preference implements Comparable<Preference>, OnDependencyChangeLis
* @see #setLayoutResource(int) * @see #setLayoutResource(int)
*/ */
public void setWidgetLayoutResource(int widgetLayoutResId) { public void setWidgetLayoutResource(int widgetLayoutResId) {
mLayoutView = null;
mWidgetLayoutResId = widgetLayoutResId; mWidgetLayoutResId = widgetLayoutResId;
} }
@@ -387,7 +389,10 @@ public class Preference implements Comparable<Preference>, OnDependencyChangeLis
*/ */
public View getView(View convertView, ViewGroup parent) { public View getView(View convertView, ViewGroup parent) {
if (convertView == null) { if (convertView == null) {
convertView = onCreateView(parent); if (mLayoutView == null) {
mLayoutView = onCreateView(parent);
}
convertView = mLayoutView;
} }
onBindView(convertView); onBindView(convertView);
return convertView; return convertView;