1. 问题:
最近在运用ListView做刷新操作时,由于刷新不及时,导致列表布局混乱(前一行的某些布局元素被画在了后一行)。2. 解决方案:
1、首先想到需要进行重画,于是调用其invalidate()方法,不管用,后来发现用手指触摸时马上能恢复正常布局,于是:2、调用ListView的setSelected(!ListView.isSelected())方法,这样就能及时刷新布局,目前还不知道具体的原理,先贴下setSelected()的源代码,供后续分析:
(URL: https://github.com/android/platform_frameworks_base/blob/master/core/java/android/view/View.java)
的
public void setSelected(boolean selected) {
if (((mPrivateFlags & SELECTED) != 0) != selected) {
mPrivateFlags = (mPrivateFlags & ~SELECTED) | (selected ? SELECTED : 0);
if (!selected) resetPressedState();
invalidate(true);
refreshDrawableState();
dispatchSetSelected(selected);
if (AccessibilityManager.getInstance(mContext).isEnabled()) {
notifyAccessibilityStateChanged();
}
}
}
本文讨论了使用ListView组件时遇到的布局刷新不及时导致的显示问题,并提供了通过调用setSelected()方法解决此问题的方法。文章详细介绍了该方法的源代码实现及原理,帮助开发者快速定位并解决布局混乱的问题。
940

被折叠的 条评论
为什么被折叠?



