#android #listview #adapter
#Android #listview #адаптер
Вопрос:
У меня есть список различных текстовых представлений. Тогда у меня есть onItemClick
обработчик для обработки, когда пользователь нажимает на элементы.
Некоторые текстовые представления я хочу, чтобы они были интерактивными. Некоторые я не хочу, чтобы они были интерактивными.
Для некликабельных текстовых представлений я использую следующий XML
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@ id/item_separator_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:background="@drawable/rounded_corners_none"
android:textSize="16sp"
android:paddingTop="15dp"
android:paddingBottom="5dp"
android:paddingLeft="15dp"
android:enabled="false"
style="?android:attr/listSeparatorTextViewStyle" />
У меня есть enabled="false"
там, но элемент по-прежнему доступен для просмотра. Есть ли атрибут XML, который я могу использовать, чтобы сделать текстовый просмотр недоступным для просмотра?
Или проблема в том, что я на самом деле не нажимаю на TextView, а щелкаю на представлении, содержащем TextView?
Единственный способ отключить нажатие — это сделать это программно?
public void onItemClick(...)
{
if ( // view is disabled )
return;
// else, do something
}
Ответ №1:
Конечно
android:clickable="false"
В коде вы могли бы использовать метод setClickable() .
«Интерактивность» — это то, что есть у всех типов представлений и групп просмотра, хотя иногда нужно быть немного осторожным с тем, как / когда ViewGroup передает щелчок (или нет) своим дочерним элементам.
Кроме того, после проверки enabled не является допустимым атрибутом для TextViews.
Комментарии:
1. Спасибо, но по некоторым причинам он не работает для TextView в моем приложении. Хотя это довольно сложный макет. Я просто использую программный способ сделать это. В любом случае спасибо. Я все равно отмечу ваш ответ как принятый, потому что он, вероятно, работает в большинстве ситуаций с обычными макетами.
2. «Кроме того, после проверки enabled не является допустимым атрибутом для TextViews». Что именно вы имеете в виду?
Ответ №2:
Для меня это работает нормально :
EditText.setInputType(Просмотр.LAYER_TYPE_NONE);
Комментарии:
1. Да, но это не решение «в XML».