Android ListView headerview无法响应单击事件,有时当headerview通过按键模式获得焦点,然后在触摸模式下单击时

Android ListView headerview无法响应单击事件,有时当headerview通过按键模式获得焦点,然后在触摸模式下单击时,android,events,listview,onclick,Android,Events,Listview,Onclick,Android ListView headerview无法响应单击事件,有时当headerview通过按键模式获得焦点,然后在触摸模式下单击时。 回购此场景的步骤: 1.滚动listview,直到headerview从视线中消失 2.通过键盘模式使headerview获得焦点 3.在触摸模式下单击headerview 然后headerview只能响应触摸事件,不能响应点击事件。但在某些设备中,这种情况不会发生 Expect:headerview可以在任何时候看到click事件时做出响应 安卓版本

Android ListView headerview无法响应单击事件,有时当headerview通过按键模式获得焦点,然后在触摸模式下单击时。 回购此场景的步骤: 1.滚动listview,直到headerview从视线中消失 2.通过键盘模式使headerview获得焦点 3.在触摸模式下单击headerview 然后headerview只能响应触摸事件,不能响应点击事件。但在某些设备中,这种情况不会发生

Expect:headerview可以在任何时候看到click事件时做出响应

安卓版本:2.2/2.3 设备:一些带有轨迹球或硬键盘的设备

我需要headerview可以随时响应click事件。所以有人能找出这种情况的原因?给我一些建议来解决这个问题?
任何提示都将不胜感激,请提前感谢

我也有同样的问题。我不知道为什么会有奇怪的表现,但我通过不使用addHeaderView解决了这个问题

只需从适配器添加一个标题作为行的一部分:mListView.setItemsCanFocustrue


希望有帮助

您是在列表上使用onItemClickedListener还是在标题视图内的视图上使用OnClickedListener?是的,我确实在列表上使用onItemClickedListener,但HeaderView本身也有一个OnClickedListener。
@Override
public int getItemViewType(int position) {
    return position == 0 ? 0 : 1;
}

@Override
public int getViewTypeCount() {
    return 2;
}

public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;

    if (v == null) {
        if (getItemViewType(position) == 0) {
            LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.music_list_header_view_2, null);
        } else {
            LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.music_favorite_list_row, null);
        }
    }
}