Я только что обновил на Android 4.2 на моем Galaxy Nexus и ListView, кажется, медленнее, чем раньше, было на 4.1. Этот метод BindView был идеальным на 4.1, на новом 4.2 я вижу небольшие глюки. Я пытался явно включить аппаратное ускорение в AndroidManifest.xml , но это не очень поможет. Приложение People (Contacts) идеально подходит на 4.2, что, я полагаю, также реализуется с помощью расширенного Android.support.v4.widget.cursoradapter . Я также уже пытался изменить android.support.v4.widget.cursoradapter для android.widget.cursoradapter без видимого улучшения.
Я только что обновил на Android 4.2 на моем Galaxy Nexus и ListView, кажется, медленнее, чем раньше, было на 4.1. Этот метод BindView был идеальным на 4.1, на новом 4.2 я вижу небольшие глюки. Я пытался явно включить аппаратное ускорение в AndroidManifest.xml , но это не очень поможет. Приложение People (Contacts) идеально подходит на 4.2, что, я полагаю, также реализуется с помощью расширенного Android.support.v4.widget.cursoradapter . Я также уже пытался изменить android.support.v4.widget.cursoradapter для android.widget.cursoradapter без видимого улучшения. [code]@Override public void bindView(View view, Context context, Cursor cursor) { final ViewHolder holder = (ViewHolder) view.getTag(); holder.nameView.setText(cursor.getString(mStreetColumnIndex)); holder.townView.setText(cursor.getString(mTownColumnIndex)); if (mDistanceColumn != null) { float distance = cursor.getFloat(mDistanceColumn); String distanceUnit; if (distance >= 1000) { distance /= 1000; distanceUnit = " km"; } else { distanceUnit = " m"; } String decimalString = mDecimalFormat.format(distance); holder.distanceView.setText(decimalString + distanceUnit); holder.distanceView.setVisibility(View.VISIBLE); } else { holder.distanceView.setVisibility(View.GONE); }
// read only brand first letter to be faster cursor.copyStringToBuffer(mBrandColumnIndex, mBuffer); if (mBuffer.sizeCopied > 0) { if (mBuffer.data[0] == 'a') { holder.logoImgView.setImageResource(R.drawable.agip); } else { holder.logoImgView.setImageResource(R.drawable.papoil); } } else { holder.logoImgView.setVisibility(View.INVISIBLE); } } < /code> Изменить: добавлен макет строки < /p>
[/code] Редактировать 2: здесь traceview https://docs.google.com/file/d/0b_ug9txtoxaiwnj6vepfvwsyazq/edit?resourcekey=0-tcsnxg7u_nz9vgfirrsena https://gist.github.com/anonymous/4069019