每一行在android gridview中都有自己的标题

时间:2013-05-07 05:51:47

标签: android gridview android-gridview

我正在使用android gridview开发一款应用。我的gridview包含10行和7列。实际上这是一个颜色图表,因此gridview中的每个元素应该是不同的颜色。我已经在drawable文件夹中创建了元素。问题是我需要在每一行上放置一个标题而不是每个元素。 假设我有一个像“head”这样的标题,那么我必须将“head”放在行中最左边元素的顶部。这就是我想要的: enter image description here

我需要做些什么才能实现这一目标?

public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    ViewHolder view;
    LayoutInflater inflator = activity.getLayoutInflater();

    if(convertView==null)
    {
        view = new ViewHolder();
        convertView = inflator.inflate(R.layout.gridview_row, null);

        view.txtViewTitle = (TextView) convertView.findViewById(R.id.textView1);
        view.imgViewFlag = (ImageView) convertView.findViewById(R.id.imageView1);

        convertView.setTag(view);
    }
    else
    {
        view = (ViewHolder) convertView.getTag();
    }

    view.txtViewTitle.setText(listCountry.get(position));
    view.imgViewFlag.setImageResource(listFlag.get(position));

    return convertView;
}

2 个答案:

答案 0 :(得分:1)

您可以尝试使用标题为TextView且图片为ImageView的自定义布局,而不是直接在适配器中使用drawable。

现在在adpater中,在getview()中,你可以将drawable设置为ImageView并将标题设置为位置0,7,14 ......等等的元素,并且对于所有其他位置都有标题Gone

编辑:(进一步解释)

在自定义布局中,标题的可见性为Gone

@Override
public View getView(int position, View convertView, ViewGroup parent) {
   if(position==0 || position%7==0){
     // modify header here 
     // set visibility to visible here 
   }
   else
      // set visibility to gone here

 // add image view here

}

答案 1 :(得分:0)

您可以制作包含TextViewImageView的布局xml文件 仅为第0行元素设置文本,并为其他元素留空。