1

我的.RelativeLayout上方有一个 ,我ListView希望该TextView布局上的ListView. 所以我正在使用onScrollListener我的列表:

@Override
    public void onScroll(AbsListView view, int firstVisibleItem,
            int visibleItemCount, int totalItemCount) {
        if (adapter != null && adapter.getCount() > 0) {
            Transaction data = (Transaction) adapter.getItem(firstVisbileItem);
            Date date = data.getTransactionDate();
            date.setActualDate(date.getActualDate());
            String month = date.getMonthString(context);
            String year = date.getYear() + "";
            tvLeftValue.setText(month);
            tvRightValue.setText(year);
        }       
    }

真的很奇怪,当我使用它时,列表滚动得很慢,但是当我尝试使用setText("")for bothTextView时,列表正常滚动。当我在真实设备(Galaxy S3)上测试时会出现此问题,而不是在 Genymotion 的模拟器上。为什么会发生这么奇怪的问题?有什么可能的解决方案吗?如果你们中的任何人遇到过这种情况,请帮助我并提前感谢。

编辑:实际上这也发生在 Genymotion 的模拟器中,它比真实设备更快,所以我认为它没有发生。

4

2 回答 2

0

这最终解决了我遇到的类似问题Simple TextView.setText 导致 40% CPU 使用率

基本上,接受的答案是建议设置文本会强制刷新整个布局,因为 TextView 可能已更改大小。

解决方案是修复 textView 的大小。根据您的布局,您仍然可以使用宽度作为匹配父级。

<TextView
     android:layout_width="200dp"
     android:layout_height="32dp"
     android:ellipsize="end" />
于 2014-07-01T03:49:45.100 回答
0

onScorll 方法被非常频繁地调用。您在主线程上做了太多事情。尝试使用工作线程来完成计算工作,并使用处理程序来更新 UI。

于 2013-09-16T09:50:27.710 回答