在Android GRIDVIEW布局中间设置空单元格
我正在使用gridview布局进行我的项目,整个代码与Android开发人员示例完全相同(对不起,我不能发布链接,因为我的声誉很低) 当我需要用3×3或4×4(和等)网格填充屏幕时,它的效果非常好,但是现在我必须用8个IVIEVIEWS来设计我的GRIDVIEW,并且我想在GRIDVIEW的中间设置空的单元,就像这样(点击图像): 这就是我目前的立场: 这就是我需要做的: 我在谷歌上搜索了很多,但是我找不到一些例子来说明如何实现它。 你知道我怎样才能解决这个问题吗 将其设置为“不可见”-在Android GRIDVIEW布局中间设置空单元格,android,gridview,Android,Gridview,我正在使用gridview布局进行我的项目,整个代码与Android开发人员示例完全相同(对不起,我不能发布链接,因为我的声誉很低) 当我需要用3×3或4×4(和等)网格填充屏幕时,它的效果非常好,但是现在我必须用8个IVIEVIEWS来设计我的GRIDVIEW,并且我想在GRIDVIEW的中间设置空的单元,就像这样(点击图像): 这就是我目前的立场: 这就是我需要做的: 我在谷歌上搜索了很多,但是我找不到一些例子来说明如何实现它。 你知道我怎样才能解决这个问题吗 将其设置为“不可见”- i
imageView.setVisibility(View.INVISIBLE);
不适合我,因为我“丢失”了一个图像视图
非常感谢 > P>让我们考虑在<代码> GRIDVIEW中总是有一个<代码>(x*x)个项目,其中<代码> x>代码>是大于1的奇数,如3或5。要隐藏的项的索引为
items.size()/2
。注意,在Android中,9/2=4和25/2=12。因此,我们已经知道应该隐藏的项的索引
接下来,在代码中,当为该索引调用adapter.getView()
方法时,只需使项目View
保持不可见即可。下面是代码的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;
}
这将使中间的视图不可见。你想要的效果
还要注意的是,您的GridView
行数必须等于行数,此方法才能工作
您始终可以根据所拥有的项目数动态更改行数。在活动
代码中,在gridView.setAdapter()之前,如下所示:
gridView.setNumColumns((int) Math.sqrt(myItemsList.size()));
我再次警告您,此代码仅适用于GridView
3*3、5*5、7*7等配置。创建透明中间图像!GridView上是否始终有7项?或者(x*x)-1项?嘿@NguyenDoanTung,我已经编辑了我的问题。你能再检查一下吗?谢谢。嘿@joao2fast4u!抱歉这么长时间的回复,我的考试很难。我已经编辑了我原来的帖子,你能再检查一下吗?我坚持了一段时间。。。非常感谢你的帮助。谢谢!您是否尝试实施我的解决方案?是的。当我使用(View.INVISIBLE)
实现时,适配器从我的imageview数组中获取imageview并将其设置为不可见。但在这种情况下,我“丢失”了我的imageview。因为他们每个人都不一样。我需要的是,当position==5(例如)时,适配器将通过(或不拍摄)imageview。看看我附在问题上的两张图片,这是最好的解释。感谢您的快速回复!实际上这是一个简单的记忆游戏,所以gridview的大小取决于级别。它从3*3开始,到7*6。数组中图像视图的数量取决于每个级别,并且在每个级别都会发生变化。如果没有中间单元格,如何在7*6布局中隐藏中间单元格?