在Custom ArrayAdapter中返回空行?

时间:2010-05-28 18:01:43

标签: android listview listadapter

当我的ListView被自定义数组适配器填充时,我检查当前列表项中的某个参数,如果它是false,我想返回一个空行。目前,我通过膨胀空的xml文件来做到这一点,但是当不应该显示多个项目时,这会创建丑陋的列表项目分隔符,并且显然不是最佳方式; - )!

    if (list.get(position).equals("i-dont-want-this-in-the-list-view")){
        View empty=inflater.inflate(R.layout.empty_row, parent, false);
        return(empty);
    }

我试图返回“null”,但它显然希望返回一个View。有没有我可以做的事情,而不必事先过滤ListView用于ListView(我想保持完整,因为我也在做其他事情)。

谢谢,

尼克

5 个答案:

答案 0 :(得分:6)

要解决线路分隔线的问题,请从ListView中删除线路分隔线,并将它们放入各个项目中。

答案 1 :(得分:3)

ViewsetVisibility扩展为VIEW.GONE

答案 2 :(得分:1)

关键词:

@Override
public View getView(int position, View convertView, ViewGroup parent)
{
   //use a global Array to set the rows visible/hidden and return empty rows
   if(disArray[position] == false) return new View(getContext()); 

   ... // continue with your getView() implementation
   return convertView;
}

更新ListView使用

adapter.notifyDataSetChanged();

答案 3 :(得分:0)

哪些行不是空的?图像可以用空的透明png替换,文本视图可以设置为“”等等。

答案 4 :(得分:0)

View.Gone会给你空列表行。尝试使用布局参数并设置为零值,如下所示:

FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(0,0); viewholder.programRow.setLayoutParams(的LayoutParams);

应根据使用的父视图组使用Layoutparams