我可以描述的最佳方式如下。我有一个海报画廊,里面有一堆图片。当用户在画廊中来回移动时,选定的海报会突出显示。我在海报库上设置了以下代码:
Gallery posterGallery = (Gallery) context.findViewById(R.id.moviePosterGallery);
posterGallery.setAdapter(new MoviePosterImageGalleryAdapter(context, key,
item.getCategory()));
posterGallery.setOnItemSelectedListener(
new MoviePosterOnItemSelectedListener(bgLayout, context));
posterGallery.setOnItemClickListener(new MoviePosterOnItemClickListener());
posterGallery.setOnItemLongClickListener(new MoviePosterOnItemLongClickListener());
似乎发生的情况是,如果您按下 vizio costar 上的 Remote,如果您按住 OK 按钮,则会触发 Click 和 Long click 事件。就我而言,当收到长按时会弹出一个对话框,但海报也会启动与该视频相关的视频以开始播放,这是 ItemClickListener 代码的一部分。
在 Nexus 7 平板电脑上测试相同的代码时,只会触发长按,而不是两者。有没有办法正确处理 Google TV 上的长按。如果有帮助,我将在 Google TV 3 中使用 vizio costar。
此外,如果您将鼠标指针移到该项目上,然后按住遥控器前面的 - 键,则只会触发长按事件。它似乎与 OK 以及按住的时间有关。
我查看了以下类似问题:
onListItemClick 和 onItemLongClick Google TV
但我已经让 onItemLongClick 在处理事件时返回 true。