То, что я сделал до сих пор, - это просмотр списка текстовых просмотров, имеющих обычный текст и интерактивные пробелы:
Нажав на диапазон, я открываю URL-адрес, щелкнув элемент "Вид вокруг" textView, приводит к спискуView OnItemClickListener
, перемещаясь к деталям, что прекрасно:
Теперь проблема заключается в следующем:
прикосновение к textView делает выделение обычного текста (с тем же цветом, что и при выборе элемента полностью), textView OnTouchListener
срабатывает событие touch, но не OnFocusChangeListener
, а элемент View не получает стиль выделения. Пробовал все варианты FOCUS_BLOCK_DESCENDANTS
для listView, item View, textView focusable
был включен или отключен с тем же результатом.
К счастью, событие textView OnClickListener
срабатывает таким образом, но это настолько уродливо: текст невидим, пока сенсорный не выпущен, так как выделенный цвет текста совпадает с цветом элемента, нет другого указания, что пользователь переходя к деталям, кроме этого уродливого текста, исчезающего.
Я подозреваю, что это происходит, потому что содержимое textView Spannable
, а части, которые не являются CliclableSpan-s, ведут себя странным образом.
Есть ли шанс, что я могу выбрать элемент, как только нормальный текст будет затронут?
Элемент списка listView:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:descendantFocusability="blocksDescendants"
android:orientation="horizontal" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:focusable="false" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:focusable="false"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"
android:textStyle="bold" />
<TextView
android:id="@+id/info"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:focusable="false"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/details"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:focusable="false"
android:gravity="fill_horizontal|right"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium"/>
</LinearLayout>
</LinearLayout>
С текстовым представлением setClickable (false) я могу отключить этот странный стиль выделения таким образом, что ничего не происходит при касании области просмотра текста, но не полезно, но может быть полезно для решения.
Также попытался добавить не настраиваемую и не кликаемую кнопку для каждого элемента, когда он коснулся всего элемента, и когда прикосновение выпущено, событие события элемента передается, что именно то, что я ожидал от textView с содержимым Spannable.