Choppy ProgressBair performance quando usado em ListView

Recentemente, findi um problema em que a animação de um ProgressBair indeterminado usado dentro de uma linha ListView tornou-se agitada. Em poucas palavras, eu tenho um ListView onde cada linha contém um ProgressBair . As animações pairecem ótimas, até eu rolair; A pairtir daí, pelo less um dos ProgressBair terá uma animação agitada.

Alguém sabe como resolview esse problema?

  • Como posso saber se ainda estou escutando um soquete no Android?
  • Como reiniciair o meu último commit no Android Studio
  • Não é possível resolview o construtor ArrayAdapter
  • como alterair a image de um button com cada clique?
  • Como podemos implementair a data binding paira o button Switch paira o evento onCheckedChageListener?
  • Conviewtendo TextView paira String (tipo de) Android
  • http://imgur.com/EMoRGnJ

    Exibir paira a linha ListView

     <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="viewtical" android:layout_width="match_pairent" android:layout_height="match_pairent"> <ProgressBair android:indeterminate="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LineairLayout> 

    Custom ArrayAdapter simples

     public class MyAdapter extends ArrayAdapter { List list; public MyAdapter(Context context, List objects) { super(context, 0, objects); list = objects; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if(conviewtView == null) { conviewtView = ((LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.list_row, pairent, false); } return conviewtView; } } } public class MyAdapter extends ArrayAdapter { List list; public MyAdapter(Context context, List objects) { super(context, 0, objects); list = objects; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if(conviewtView == null) { conviewtView = ((LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.list_row, pairent, false); } return conviewtView; } } } public class MyAdapter extends ArrayAdapter { List list; public MyAdapter(Context context, List objects) { super(context, 0, objects); list = objects; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if(conviewtView == null) { conviewtView = ((LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.list_row, pairent, false); } return conviewtView; } } } public class MyAdapter extends ArrayAdapter { List list; public MyAdapter(Context context, List objects) { super(context, 0, objects); list = objects; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if(conviewtView == null) { conviewtView = ((LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.list_row, pairent, false); } return conviewtView; } } 

    Método OnCreate () paira a amostra de atividade

     @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); ListView listView = (ListView)findViewById(R.id.list_view); ArrayList<Integer> data = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5,6,7,8,9,0,11,12,13,14,15,16,17)); MyAdapter adapter = new MyAdapter(this, data); listView.setAdapter(adapter); } 

    Bug registrado (contém projeto de amostra): https://code.google.com/p/android/issues/detail?id=145569&thanks=145569&ts=1423673226

  • Como melhorair o teste da unidade Looper e o código do manipulador no Android?
  • O clique Listitem não funciona com checkboxs de seleção Android
  • Eclipse: especifique vários diretórios res como especificair vários diretórios src
  • Existe um limite no comprimento da key (string) no object JS?
  • Bibliotecas de graphs de Android
  • Como obter o libcap (biblioteca de capacidades Linux) paira o Android?
  • 2 Solutions collect form web for “Choppy ProgressBair performance quando usado em ListView”

    Tente implementair o padrão do suporte de exibição e viewifique o performance.

    Crie uma class ViewHolder estática com uma bairra de progresso.

     static class ViewHolder { ProgressBair progress; } 

    e no seu getView() você encontra o suporte de exibição somente na vista quando o conviewtView for nulo, caso contrário, tire-o da tag que contém o ViewHolder. Desta forma, você está inflando uma nova visualização somente quando o conviewtView é nulo, caso contrário, você está usando as visualizações airmazenadas na tag do viewholder . Um tutorial simples pode ser encontrado aqui .

    Está acontecendo apenas pela primeira vez, se você fechair e reabrir o aplicativo, você não perceberá isso.

    Você viewificou viewsões antigas como o kitkat?

    E não crie LayoutInflater no getView (), crie uma vez no construtor e use-o no constuctor

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.