У меня были похожие проблемы. Единственное решение, которое я смог найти (когда панель поиска находится в виде списка), - отключить панель поиска до тех пор, пока не будет нажат элемент.
Решение
В ArrayAdapter я установил для обоих включенных и фокусируемых значение false и добавил прослушиватель SeekBar, установив атрибуты в false, что позволило мне использовать элемент списка в прослушивателеIIClicked. Внутри onItemCLickListener я получил панель поиска, установив атрибуты в true, это означало, что ее можно перемещать вверх или вниз. Затем я отключил его после того, как была произведена корректировка. код ниже
Фрагмент ArrayAdapter
этот код находится внутри создания элемента списка, в котором находится панель поиска
seekBar.setClickable(false);
seekBar.setFocusable(false);
seekBar.setEnabled(false);
/* attach listener */
attachProgressUpdatedListener(seekBar, positionOfItemInList);
AttachProgressUpdatedListener
этот метод присоединяет слушателя к панели поиска внутри класса arrayAdapter
private void attachProgressUpdatedListener(SeekBar seekBar,
final int position) {
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
int progress = seekBar.getProgress();
int task_id = (Integer) seekBar.getTag();
TaskHandler taskHandler = new TaskHandler(DBAdapter
.getDBAdapterInstance(getContext()));
taskHandler.updateTaskProgress(task_id, progress);
mList.get(position).setProgress(progress);
//need to fire an update to the activity
notifyDataSetChanged();
seekBar.setEnabled(false);
}
public void onStartTrackingTouch(SeekBar seekBar) {
// empty as onStartTrackingTouch listener not being used in
// current implementation
}
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// empty as onProgressChanged listener not being used in
// current implementation
}
});
}
OnItemCLickListener
это отрывок из действия, в котором находится представление списка.
taskListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
SeekBar sb = (SeekBar) view.findViewById(R.id.seek);
sb.setFocusable(true);
sb.setEnabled(true);
}
});