У меня есть простой 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);
}
}