Я видел все связанные с ним вопросы и пробовал их ответы. У меня есть ListView внутри фрагмента, и метод onItemClick
вызывается, когда внутри одного действия, но не вызывается в другом. Все остальное - то же самое. Я пробовал:ListView onItemClick not called
- Изменение
android:clickable
явно. - Изменение
android:focusable
иandroid:focusableInTouchMode
явно. - Телефон:
listView.setItemsCanFocus
. - Добавить атрибут
android:descendantFocusability="blocksDescendants"
как на фрагмент, так и на корень активности.
По-прежнему, он не работает. Это тот же самый фрагмент с одним адаптером, который не имеет условностей о том, в какой активности. Однако в одном действии он работает отлично, а в другом, onItemClick
не вызывается. Я на ICS. Почему это произойдет?
UPDATE:
Вот соответствующий код в моем фрагменте:
dataSource = (ArrayList<Map<String, Object>>) task.getResult();
FeedAdapter adapter = new FeedAdapter(getActivity(), dataSource, getUser());
ListView list = (ListView) rootView.findViewById(R.id.listView);
list.setItemsCanFocus(true);
//just trying these
list.setOnItemClickListener(self);
list.setAdapter(adapter);
adapter.notifyDataSetChanged();
if (dataSource.size() == 0) {
noPostsLabel.setVisibility(View.VISIBLE);
}
И в моем адаптере:
public View getView(int position, View convertView, ViewGroup parent) {
View view;
final Map<String, Object> post = objects.get(position);
LayoutInflater inflater = LayoutInflater.from(getContext());
if (convertView == null || convertView.getId() == R.id.headerRoot) {
view = inflater.inflate(R.layout.list_item_post_layout, parent, false);
} else {
view = convertView;
}
view.setClickable(false); //just trying these two now, they weren't here originally
view.setFocusable(false);
//populate
view.setTag(post);
[...] //populate the cell. very long code, redacted.
return view;
}
UPDATE 2:
I есть o реализовано, что некоторые ячейки также не могут быть выбраны в моей «рабочей» активности, когда у них есть видимый HorizontalScrollView внутри ячейки (у меня есть функция прикрепления файлов, и она видна только тогда, когда есть файлы. В противном случае он находится в состоянии видимости GONE
). Я понятия не имею, почему это вызывает такие неприятности.
UPDATE 3:
Я также узнал, что взгляды внутри клетки реагируют. Это только вид ячейки, который не принимает ввода.
UPDATE 4:
Я в конечном итоге переместить логику обработчика нажмите на сам макет ячейки, вместо того, чтобы полагаться на обработчик зрения списка. Я знаю, что это не очень хорошая практика, но я должен был соответствовать сроку. Кроме того, теперь он работает довольно гладко. Я не закрываю/не отвечаю на вопрос, поскольку техническая проблема все еще присутствует, и я не нашел для нее реального решения. Я только что воспользовался обходным решением для удовлетворения моего проекта.
Некоторый код может помочь в решении проблемы. –
@EugeneH откуда? –
Из ваших двух фрагментов и действий, которые относятся к сообщению. Интерфейсные обратные вызовы (если они есть), реализуют список. –