在recyclerview中动态设置textview的可见性

时间:2018-08-15 23:58:35

标签: android android-recyclerview

我有一个回收站视图,其中的第一项必须具有标题。我目前实现它的方式是获取适配器位置,如果它是0,那么我将包含标题的textview设置为visible并将其设置为其他值。 但是,当我通过notifyItemRemoved删除第一项时,则标题在新的第一项上不可见(即之前的第二项)。有人可以告诉我我需要做什么吗?

更新:我的意思是我在视图本身中具有标题文本,并且需要根据视图是否是recyclerview中的第一个视图来切换可见性。

因此,当前我在onBindViewHolder方法中切换可见性,在该方法中检查位置是否为0,然后将标题可见性设置为View.VISIBLE,否则将其设置为VIEW.GONE。但是,为了使它在任何时候都可以对适配器进行任何更改,然后需要再次重新创建整个适配器并将其设置为“回收者”视图。

道歉,不公开代码,但其中包含一些我无法透露的敏感信息

3 个答案:

答案 0 :(得分:0)

您必须使用getItemViewType(int position)方法来确定什么物品应该在什么位置。

private static final int HEADER = 0;
private static final int ITEMS = 1;
@Override
public int getItemViewType(int position) {

    if (position == 0) {
        return HEADER;
    } else {
        return ITEMS;
    }
}

getItemCount()中,您必须再添加一项,因为我们有标头

 @Override
public int getItemCount() {
    return sections.size() + 1;
}

答案 1 :(得分:0)

 @Override
public void onBindViewHolder(MyViewHolder holder, int position) {



    if(position==5) {
       holder.textview.setVisibility(View.GONE);
    }
}

答案 2 :(得分:0)

谢谢大家的回答。 但是,他们还没有解决我的问题,至少到目前为止,我已经通过使用recyclerview的布局管理器来获取视图位置,并且如果要删除的视图的位置为0,那么我将设置标题textview到第二个视图的可见位置,然后调用notifyItemRemoved。如果位置不为0,则只调用notifyItemRemoved。