Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
#1

Интересная особенность TextView - Программирование Android

22.08.2014, 11:51. Просмотров 603. Ответов 6
Метки нет (Все метки)

Столкнулся с интересной особенностью TextView, когда в нем находится гиперссылка, скажем на вебсайт. В layout стоят обычные атрибуты для активизации ссылок
Java
1
2
android:autoLink="all"
android:linksClickable="true"
Все работает отлично.
Но еще на экран привязан view.setOnTouchListener(new OnTouchListener()). Его задача отлавливать касание в определенной зоне экрана. Тоже работает отлично, но если в данный момент на экране нет ссылок. Как только в тексте, выводимом на экран появляется любая ссылка, касание в нужной зоне экрана перестает отлавливаться. даже, если в этой зоне и нет ссылок.

Интересно, почему такой эффект и как его можно обойти?

Добавлено через 21 час 44 минуты
Увы, но похоже эта проблема просто не решается.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2014, 11:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Интересная особенность TextView (Программирование Android):

Текст из TextView перенести в другой TextView по нажатию Button - Программирование Android
Люди, помогите плиз. Недавно начал ковырять программирование под Android. Хотел сделать банальную вещь - текст из TextView перенести в...

TextView txt = new TextView(this); - ошибка - Программирование Android
Возникла проблема с динамическим создание TextView в цыкле, хотя в другом месте создается таким же образом все нормально TextView txt =...

TextView бд - Программирование Android
Подскажите можно ли на прямую вызвать из бд в TextView текст?

Цвет TextView - Программирование Android
Доброго времени суток! Подскажите пожалуйста, как сделать так чтобы background у textview был двумя цветами именно 2мя. Чтобы часть была...

TextView and Fragment - Программирование Android
Доброго времени суток . Очень странная проблема, в классе extends Fragment есть кнопка и текст вью , при нажатии на кнопку вызываю ...

AlarmManager и TextView - Программирование Android
Здравствуйте. Задача такая: есть AlarmManager и TextView. Как заставить AlarmManager отсчитывать время, заданное пользователем, и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
22.08.2014, 12:11 #2
А если сделать листенер не на весь экран, а только на облость которая нужна?
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
22.08.2014, 13:31  [ТС] #3
Зона касания сделана лишь на центр экрана. Получается, что при обнаружении ссылки методы TextView игнорируют OnTouchListener() вне этих ссылок. А вот найти какой метод TextView отвечает за это - не удалось
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
22.08.2014, 13:37 #4
Я имел ввиду вообще не на экран вешать, а на какой нибудь, к примеру, layout.
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
22.08.2014, 15:38  [ТС] #5
Согласен, но у меня текст должен быть во весь экран.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
22.08.2014, 17:18 #6
А если попробовать не добавить дополнительный onTouchListener а переопределить его в TextView? То есть создать кастомный TextView и там в onTouchListener прописать то, что у вас сейчас на экране.

Добавлено через 4 минуты
Вот как то так
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class MyTV extends TextView {
    public MyTV(Context context) {
        super(context);
    }
 
    public MyTV(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
 
    public MyTV(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
 
    @Override
    public void setOnTouchListener(OnTouchListener l) {
        //Тут код из вашего листенера на экране
    }
}
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
22.08.2014, 22:33  [ТС] #7
Спасибо! Попробую
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2014, 22:33
Привет! Вот еще темы с ответами:

Вывод в TextView - Программирование Android
Здраствуйте, я новичок и у меня возник первый вопрос: есть TextView tv1 и есть "InetAddress Address = InetAddress.getByName("www.ya.ru");"...

EditText и TextView - Программирование Android
Добрый день. Хочу написать приложение ТСР клиент. Возникла сложность с вводом IPшника в EditText и последующем его выводом в TextView...

Клик по textview - Программирование Android
Есть listView внутри него textview В который вставляется ссылка '<a href="http://yandex.ru'>ыыыы</a>', таким вот образом ...

Вывод в textView из БД - Программирование Android
У меня есть БД public void onCreate(SQLiteDatabase db) { // создаем таблицу с полями db.execSQL("create table mystudent ("...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.08.2014, 22:33
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru