【问题标题】:ListView items not clickable with HorizontalScrollView insideListView 项目不能点击里面的 Horizo​​ntalScrollView
【发布时间】:2013-10-09 21:55:32
【问题描述】:

我有一个相当复杂的ListView。每个项目看起来像这样:

> LinearLayout (vertical)
  > LinearLayout (horizontal)
    > include (horizontal LinearLayout with two TextViews)
    > include (ditto)
    > include (ditto)
  > TextView
  > HorizontalScrollView (this guy is my problem)
    > LinearLayout (horizontal)

在我的活动中,当创建一个项目(调用getView())时,我将动态TextViews 添加到HorizontalScrollView 内的LinearLayout(除了填充其他更简单的东西)。令人惊讶的是,性能相当不错。

我的问题是当我添加HorizontalScrollView 时,我的列表项变得无法点击。单击时它们不会获得橙色背景,并且不会触发我设置的OnItemClickedListener(进行简单的Log.d 调用)。

如何让我的列表项再次可点击?


编辑: 在最上面的LinearLayout 上设置android:descendantFocusability="blocksDescendants" 似乎有效。不过,我想知道是否还有其他方法:如果我想要列表项中的可聚焦项怎么办?

【问题讨论】:

    标签: android listview


    【解决方案1】:

    在最上面的LinearLayout 上使用android:descendantFocusability="blocksDescendants" 就可以了。内部的元素仍然可以“可点击”,它们只是不可聚焦(即您不能在非触摸屏设备上点击它们)。对我来说已经足够了。

    【讨论】:

      【解决方案2】:

      当我将 Horizo​​ntalScrollView 应用于我的 TableLayout 滚动工作正常但无法单击列表项 我的布局如下

      线性布局 水平滚动视图 表格布局 ………… /表格布局 /Horizo​​ntalScrollView /线性布局

      我将 android:descendantFocusability="blocksDescendants" 应用到我最上面的 linearlayout 任何帮助

      【讨论】:

        【解决方案3】:
        android:descendantFocusability="blocksDescendants"
        

        对我没有帮助。 所以

        所以,我意识到了听众模式。

        public interface EventListItemOnClickListener {
            public void itemClicked();
        } 
        

        并在适配器中通知所有侦听器

        private List<EventListItemOnClickListener> listeners;
        protected void notifyOnClick(int position){
          for(int i=0; i<listeners.size();++i)
            listeners.get(i).itemClicked((Event)events.get(position));
        }
        ...
            @Override
            public void onClick(View v) {
              notifyOnClick(position);
            }
        ...
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多