在 GridView 中动态填充而不是通过 XML
Padding in GridView Dynamically not via XML
我想在 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 时,我无法保存和设置填充。它只设置索引而不设置填充
我想保存padding 也设置一下
这是我的自定义适配器的 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;
}
我似乎 setSelectionFromTop
GridView
。看到这张图片
可能您应该更新 API 级别或您在 post 中使用的其他环境设置。
编辑
请尝试使用 smoothScrollToPositionFromTop
,因为 setSelectionFromTop
存在 bug。
我想在 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 时,我无法保存和设置填充。它只设置索引而不设置填充
我想保存padding 也设置一下
这是我的自定义适配器的 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;
}
我似乎 setSelectionFromTop
GridView
。看到这张图片
可能您应该更新 API 级别或您在 post 中使用的其他环境设置。
编辑
请尝试使用 smoothScrollToPositionFromTop
,因为 setSelectionFromTop
存在 bug。