我使用viewholder类模式使用自定义ArrayAdapter的listview。在每个row_layout中,有2个textview A和B.我想要做的是当listitems中的textview中的任何一个是空的时候。该特定行的视图应为GONE,并且不占用任何空间。
以下代码将导致所有textview A为GONE,如果其中一个listitem具有空textview A,即使某些listitem在textview A中有文本。同样,如果其中一个listitem具有空textiew B,列表视图中的所有项目都将为GONE。
我该如何解决这个问题?
userModel
答案 0 :(得分:1)
如果文本不为空,请尝试将可见性设置为VISIBLE。
if (di.getDrugBrandName().equals("")) {
vh.drugBrandName.setVisibility(View.GONE);
} else {
vh.drugBrandName.setVisibility(View.VISIBLE);
}
if (di.getDrugOtherName().equals("")) {
vh.drugOtherName.setVisibility(View.GONE);
} else {
vh.drugOtherName.setVisibility(View.VISIBLE);
}
答案 1 :(得分:1)
您应该放置两种状态(Visible和Gone),因为您使用的是ViewHolder模式:
vh.drugOtherName.setVisibility(TextUtils.isEmpty(di.getDrugOtherName()) ? View.GONE : View.VISIBLE);
vh.drugBrandName.setVisibility(TextUtils.isEmpty(di.getDrugBrandName()) ? View.GONE : View.VISIBLE);