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:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user