如何在 Android 中禁用 GridView 滚动?
Posted
技术标签:
【中文标题】如何在 Android 中禁用 GridView 滚动?【英文标题】:How to disable GridView scrolling in Android? 【发布时间】:2011-06-18 16:20:30 【问题描述】:我将 GridView 用于游戏板。最近一些用户遇到了垂直滚动板的问题(在运行 2.2 的三星 Galaxy / Vibrant 手机上)——这个错误在我的 Nexus One 上没有出现。
一位用户提出了一些screenshots 的问题。
如何将 GridView 锁定到位?有没有办法禁用滚动?
【问题讨论】:
【参考方案1】:尝试为GridView
添加或覆盖setOnTouchListener
,
然后在onTouch
方法中,您可以使用这样的代码
使gridView
不可滚动
Java
gridView.setOnTouchListener(new OnTouchListener()
@Override
public boolean onTouch(View v, MotionEvent event)
return event.getAction() == MotionEvent.ACTION_MOVE;
);
科特林
gridView.setOnTouchListener v, event ->
event.action == MotionEvent.ACTION_MOVE
【讨论】:
这是一个正确的解决方案,应该被接受。 它也停止了对 GridView 的 onItemClick 触发。如何预防? 如果需要,重新启用 GridView 滚动的代码是什么?【参考方案2】:您可以尝试 setEnabled(false),尽管它可能有其他副作用。 GridView 并不是真的要以您使用它的方式使用。您应该创建自己的自定义视图或布局。您也可以使用 TableLayout。
【讨论】:
是的,我意识到它应该是一个自定义视图。替换当前的 GridView 将涉及更多(早期设计错误)。希望有一个快速修复:) setEnabled() 方法禁用所有功能。谢谢罗曼 Romain Guy 不希望您在不滚动的情况下使用 GridView。我使用这个***.com/a/4536955/671543 技巧。 对于未来的读者,我发现了一个 TableLayout 示例:***.com/a/8639461/3844201以上是关于如何在 Android 中禁用 GridView 滚动?的主要内容,如果未能解决你的问题,请参考以下文章
当我在gridview中过滤行没有找到记录时如何禁用导出按钮
Eclipse ADT ListView 和 GridView 渲染被禁用