像在YouTube App中一样在SLideMenu中制作ListView

时间:2013-02-27 17:40:22

标签: android listview

我想在SlideMenu中模拟这种类型的Listview。我有SlideMenu正常工作。它是一个ListFragment。我希望像Android上的YouTube应用一样复制此模式:

enter image description here

我基本上有几个列表项需要添加到类别列表的顶部。我想要一个标题分开。

我想要这个:

Home
Profile
Top Items

Header that says Categories
And List of Categories

我已经在我的SlideMenu上列出了正确的类别。它们来自adapter,其填充在MySQL中的表格中。但是这三个顶级项目并非来自同一个表格(或任何表格)。顶部是ListView的标题吗?是OWN ListView吗?或..?

请记住,我希望能够对列表进行排序(我已经通过spinner对其进行了排序)。所以类别必须是动态的。但如何添加上面的几个静态项制作标题

我真的不需要代码示例,我只想知道实现它的方法。

编辑:这是代码正在进行中 这显示了分隔符,如Youtube示例中的Channels行。还需要弄清楚如何在顶部添加这两条或三条静态线。

@Override
    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder holder;
        holder = new ViewHolder();

        View rowView = convertView;
        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        int type = getItemViewType(position);

        if (rowView == null) {

            switch (type) {
            case TYPE_ITEM:
                rowView = inflater.inflate(R.layout.mastercat_layout, null,
                        true);
                holder.textView = (TextView) rowView.findViewById(R.id.label);
                holder.textView.setTypeface(tf);
                holder.imageView = (ImageView) rowView.findViewById(R.id.icon);

                break;
            case TYPE_SEPARATOR:
                rowView = inflater.inflate(R.layout.mastercat_layout_separate, null);

                break;
            }

            rowView.setTag(holder);

        } else {

            holder = (ViewHolder) rowView.getTag();
        }

        holder.textView.setText(getItem(position));
        holder.imageView.setImageResource(R.drawable.ic_launcher);

        return rowView;

    }

1 个答案:

答案 0 :(得分:3)

也许你需要在适配器中使用几个convertView池? BaseAdapter包含方法

public int getItemViewType (int position)

public int getViewTypeCount ()

您可以覆盖它以实现2个视图池 - 一个用于标题,另一个用于项目列表视图。同样在这种情况下,您需要根据getItemViewType()返回的itemViewType更改getView方法。