Android ListView headerview无法响应click事件,有时当headerview通过keybord模式获得焦点时,则在触摸模式下单击它。 回购此方案的步骤: 1.滚动列表视图,直到标题视图从视线中消失 2.通过键盘模式使标题视图获得焦点 3.在触摸模式下单击标题视图 那么headerview只能响应触摸事件,并且无法响应click事件。但在某些设备中,这种情况不会发生。
期望:标题视图可以在我们看到任何时候响应点击事件
Android版:2.2 / 2.3 设备:一些带轨迹球或硬键盘的设备
我需要headerview可以随时响应click事件。那么有人可以找出这种情况的原因吗?并给我一些建议来解决这个问题? 任何提示都表示赞赏,提前谢谢。
答案 0 :(得分:0)
我遇到了同样的问题。我不知道为什么它表现得很奇怪,但我能够通过不使用addHeaderView()
来解决问题。
只需在适配器中添加一个标头作为行的一部分:mListView.setItemsCanFocus(true);
@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);
}
}
}
希望它有所帮助!