簡體   English   中英

嘗試在onScroll中使用setText時ListView不能平滑滾動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM