在GridView中填充动态地不通过XML

时间:2015-09-01 11:16:13

标签: android listview gridview layout padding

我想在Gridview中设置Padding,就像在listview中的listview中一样,我们有像

这样的函数
ListView lv;
    index = lv.getFirstVisiblePosition();
 v = lv.getChildAt(0);
 top = (v == null) ? 0 : (v.getTop() - lv.getPaddingTop());
lv.setSelectionFromTop(index,top);

但是在gridview中我们没有这种功能。

我们所拥有的只是

GridView gridview;
gridview.setSelection(index);

通过这个功能。当用户滚动GridView时,我无法保存和设置填充。它只设置索引而不是填充

我想保存填充并设置它。

这是我的自定义适配器的getView()方法

    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        View row = convertView;
        MyStringReaderHolder holder;

        if(row==null)
        {
            LayoutInflater inflater = ((Activity)context).getLayoutInflater();
            row = inflater.inflate(layoutResourceId, parent,false);
            holder= new MyStringReaderHolder();
          // holder.gtumcaTvFirstName =(TextView)row.findViewById(android.R.id.candidatesArea);
          holder.gtumcaTvLastName =(TextView)row.findViewById(R.id.songTitle);
     //   holder.gtumcaTvBirthDate  =(TextView)row.findViewById(R.id.songTitle2);
            //holder.gtumcaIvIcon=(ImageView) row.findViewById(android.R.id.candidatesArea);
           row.setTag(holder);
        }
        else
        {
            holder=(MyStringReaderHolder) row.getTag();
        }
        GtuMcaBean mrb =data.elementAt(position);
     //  holder.gtumcaTvFirstName.setText(mrb.gtumcaFirstName);
        holder.gtumcaTvLastName.setText(mrb.gtumcaLastName);
 // holder.gtumcaTvBirthDate.setText(mrb.gtumcaBirthdate);
       //holder.gtumcaIvIcon.setImageResource(R.drawable.ic_launcher);
        return row;
    }

1 个答案:

答案 0 :(得分:2)

setSelectionFromTop我似乎得到了GridView。见图片

setSelectionFromTop

您可能应该更新您在帖子中使用的API级别或其他环境设置。

修改

尝试使用smoothScrollToPositionFromTop,因为setSelectionFromTop存在bug