我的ListView有ArrayAdapter。它有TextView和箭头图像。如果TextView有3行或更多行,我必须显示箭头图像,但如果行计数<必须隐藏3个箭头。 但实际上,在TextView绘制之前,适配器没有计算其行数。有任何想法吗?我需要带箭头的显示项目,取决于行数。
此代码不起作用(TextView仅在绘制后接收行数)
if(holder.text.getLineCount() < 3)
{
holder.arrow.setVisibility(View.GONE);
}
else
{
holder.arrow.setVisibility(View.VISIBLE);
}
答案 0 :(得分:0)
您需要延迟代码的执行,直到文本更新为止。请尝试使用TextView::addTextChangedListener()事件:
holder.text.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable target) {
if(holder.text.getLineCount() < 3) {
holder.arrow.setVisibility(View.GONE);
}
else {
holder.arrow.setVisibility(View.VISIBLE);
}
}
public void beforeTextChanged(CharSequence s, int start, int count, int after){}
public void onTextChanged(CharSequence s, int start, int before, int count){}
});