java - 如何填充 GridView 中的空单元格并使其不可点击
问题描述
这是我的 GridView 代码
<GridView
android:id="@+id/device_display_grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="100dp"
android:numColumns="3"
android:verticalSpacing="1dp"
android:horizontalSpacing="1dp"
android:background="#e5e5e5"/>
这就是我的 GridView 的样子
我的网格视图
我从数据库中获取数据并使用该数据填充我的 GridView。我的问题是如何使右下角的空白视图显示为白色背景。如果单击它,我还需要让我的 onItemClickListner 不执行任何操作。并假设如果我有 2 个空单元格,那么它们都应该被填充。
解决方案
只需在数组的最后一个索引中添加一个额外的空对象。
var emptycell=0
if(array.size % 3 == 1) {
array.add(EmptyObject())
array.add(EmptyObject())
emptycell=2
} else if (list % 3 == 2) {
array.add(EmptyObject())
emptycell=1
}
并且当用户单击任何项目时,您可以检查单击的位置应该低于 array.size - 如下所示的空单元格。
if(position<array.size-emptycell){
//do whatever
}
推荐阅读
- php - 在 ajax 和控制器(laravel)中循环以使用不同的 ID 和令牌多次发布到端点
- node.js - Heroku 上的服务器请求中断 (H18)
- java - 检查所有 EditText 是否为空的问题
- r - r - foreach 无法在函数中找到对象
- ios - Siri 支持:INPlayMediaIntent 支持哪些意图参数?
- spring-boot - 为什么我不能通过 spring 发送 CSS 装饰的 html 电子邮件?
- c# - 如何在 .NET Core 2.1 项目中引用/导入 .NET Standard 2.0 类型?
- vtk - 如何在 CSHARP 项目中将 Simpleitk 图像转换为 VTK?
- azure - Azure 流分析处理/路由来自同一设备的不同大小和内容的 IoT 消息的推荐方法是什么
- amazon-cloudformation - 预填充的可用区选项列表作为 cloudformation 模板的参数