Производительность броска ListView хуже на Galaxy 10.1 "Tab (3.1) против 7" Tab (2.2) - PullRequest
1 голос
/ 02 января 2012

У меня есть простой ListView, который содержит несколько TextViews.

Когда я делаю (подобный) просмотр этого списка на Galaxy Tab 10.1 "и Galaxy Tab 7", я замечаю следующие различия:

  • длительность броска намного меньше на 10,1 "(примерно 2,6 с против 1,7 с)
  • расстояние в 10,1 "намного больше (список прокручивается больше)
  • количество вызовов OnScrollListener.onScroll намного ниже на 10,1 "(вероятно, связано с меньшей продолжительностью)

В целом, это приводит к снижению производительности (меньше перерисовок / прокрутки элементов)

Есть предложения, как это улучшить?
Например. мы можем контролировать (продлевать) продолжительность броска?

Я добавляю пример кода, иллюстрирующий это поведение ниже

public class TestSwipe extends Activity
{

protected void onCreate(Bundle savedInstanceState)
{
  super.onCreate(savedInstanceState);
  ListView t = new ListView(this);
  t.setScrollingCacheEnabled(false);        
  t.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
  t.setAdapter(new BaseAdapter()
  {

      public View getView(int position, View convertView, ViewGroup parent)
      {
          TextView t = new TextView(TestSwipe.this);
          t.setText("TV: "+position);
          return t;
      }

      public long getItemId(int position)
      {
          return 0;
      }

      public Object getItem(int position)
      {
          return null;
      }

      public int getCount()
      {
          return 10000;
      }
  });

  t.setOnScrollListener(new OnScrollListener()
  {
    int ctr=0;
    public void onScrollStateChanged(AbsListView view, int scrollState)
    {
        Log.d("TWINTV", "scrollState="+scrollState);
        ctr=0;
    }

    public void onScroll(AbsListView view, int firstVisibleItem,
            int visibleItemCount, int totalItemCount)
    {
        Log.d("TWINTV", "onScroll="+ctr++);

    }
  });
  setContentView(t);
}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...