【问题标题】:Padding in GridView Dynamically not via XML不通过 XML 在 GridView 中动态填充
【发布时间】:2015-11-26 14:35:50
【问题描述】:

我想在 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;
    }

【问题讨论】:

  • @Androider.i 上传 getview() 方法请检查并建议我如何在其中设置填充
  • setSelectionFromTop 是 AbsListView 中的一个方法,GridView 从它扩展而来,所以看起来它也应该可用于 GridView
  • @random 它不可用:(
  • @androider.......如果我在布局中设置,它会将填充设置为永久固定值......我想像我给出的列表视图示例一样继续更改它以编程方式

标签: android listview gridview layout padding


【解决方案1】:

我似乎得到了setSelectionFromTop 为GridView。看这张图

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

编辑

尝试改用smoothScrollToPositionFromTop,因为setSelectionFromTop 存在bug。

【讨论】:

  • 什么时候你会实现它。logcat 给出的错误比没有这样的方法存在......这个方法只适用于 abslistview 兄弟:)
  • 我使用的 api 级别是 23 ..minimum 是 14
  • 啊好的,我看到了这个问题code.google.com/p/android/issues/detail?id=79159。
  • 您可以尝试使用smoothScrollToPositionFromTop,如stackoverflow.com/questions/26744974/… 中的其中一个cmets 中所述吗?
  • 你引用的方法对我来说有点复杂,因为我是新来的......你能帮我吗?
猜你喜欢
  • 2023-03-13
  • 2020-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-22
  • 1970-01-01
相关资源
最近更新 更多