setvisibility VIEW.GONE如果textview在使用viewholder的列表视图中为空

时间:2016-05-06 01:02:38

标签: android listview android-viewholder

我使用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

2 个答案:

答案 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);