[英]ListView doesn't scroll smoothly when trying to use setText in onScroll
我在ListView
上方有一個RelativeLayout
,並且我希望該布局上的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);
}
}
當我使用它時,列表滾動真的很奇怪,但是當我嘗試對兩個TextView
都使用setText("")
,列表會像往常一樣平滑滾動。 當我在真實設備(Galaxy S3)上而不是Genymotion的模擬器上進行測試時,會出現此問題。 為什么會發生這種怪異的問題? 有沒有可能的解決方案? 如果有任何人遇到此問題,請幫助我並提前致謝。
編輯:實際上,這也發生在Genymotion的模擬器中,它比實際設備中的速度更快,所以我認為這沒有發生。
onScorll方法經常被調用。 您在主線程上做的事情太多了。嘗試使用工作線程來執行計算工作,並使用處理程序來更新UI。
最終解決了我遇到的類似問題: Simple TextView.setText導致40%的CPU使用率
基本上,可接受的答案是建議設置文本會強制刷新整個布局,因為TextView的大小可能已更改。
解決方法是修復textView的大小。 您仍然可以將width用作匹配父對象,具體取決於您的布局。
<TextView
android:layout_width="200dp"
android:layout_height="32dp"
android:ellipsize="end" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.