我使用gridview布局处理我的项目,整个代码与Android Developers示例完全相同(由于声誉不佳,我无法发布链接,抱歉)。
当我需要用3 * 3或4 * 4(和其他)网格填充屏幕时,它的工作非常棒,但是现在我必须设计我的gridview只有8个图像视图,我想在中间设置空单元格GridView,就像那样(点击图片):
这是我目前的职位:
这就是我需要做的事情:
我已经搜索了很多内容,但我找不到一些示例来说明如何实现它。 您知道我该如何解决这个问题吗?
将其设为隐身 -
imageView.setVisibility(View.INVISIBLE);
不适合我,因为那时我失去了#34;我的一个imageViews。
非常感谢!
答案 0 :(得分:-1)
我们认为您的(x*x)
项目总是GridView
个,其中x
是一个大于1的奇数,如3或5。要隐藏的项目的索引是items.size()/2
。请注意,在Android中,9/2 = 4和25/2 = 12.因此,我们已经知道应该隐藏的项目的索引。
接下来,在代码中,当您为该索引调用View
方法时,您必须使项adapter.getView()
保持不可见。以下是代码的getView()
部分:
@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
ViewHolder viewHolder;
LayoutInflater inflater = yourContext.getLayoutInflater();
if(convertView==null)
{
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.your_grid_item_layout, null);
convertView.setTag(viewHolder);
}
else
{
viewHolder = (ViewHolder) convertView.getTag();
}
if(position == yourItemsList.size()/2){
convertView.setVisibility(View.INVISIBLE);
}
else{
convertView.setVisibility(View.VISIBLE);
}
return convertView;
}
这会使您的中间View
不可见。你想要的效果。
另请注意,您的GridView
行数必须等于此方法的行数。
您始终可以根据您拥有的项目数动态更改行数。在Activity
代码中gridView.setAdapter()
之前,如下所示:
gridView.setNumColumns((int) Math.sqrt(myItemsList.size()));
我再次警告您,此代码仅适用于3 * 3,5 * 5,7 *等GridView
配置。