我有一个由适配器支持的列表视图。每行都有许多视图,其中两个是文本视图。因为我需要在文字视图上调用view.getMeasuredWidth()
,所以我会调用onGlobalLayout()
内部的文字视图并将数据分配为
textview.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@SuppressLint("NewApi")
@Override
public void onGlobalLayout() {
int length = Utils.getTextLengthToFitTextview(textview, strValue);
textview.setText(strValue.substring(0, length));
if (length < strValue.length()) {
textview2.setText(strValue.substring(length));
} else {
textview2.setVisibility(View.GONE);
}
if (Utils.hasJellyBean()) {
textview.getViewTreeObserver().removeOnGlobalLayoutListener(this);
} else {
textview.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
}
});
现在由于某种原因,textview和textview1的内容并不总是与相应的行匹配。当我滚动时,内容跳跃行。有谁知道我怎么解决这个问题?我通过扩展BaseAdapter来创建我的适配器。
此外,我正在使用持有人模式来表达我的观点。