Intereting Posts
Ошибка Xamarin.IOS. Невозможно разрешить ссылку: C: / Program Files (x86) /../ Xamarin.iOS / v1.0 / Фасады / System.Private.CoreLib.InteropServices.dll Где я могу получить исходный код приложения для камеры Android? Google Maps Android v2 не работает с действиями ActionBarSherlock Fragment Разрезать видео в андроиде по исходной позиции до конечной позиции Android: сохранение состояния кнопок радиосвязи Выполнение авторизированных (через facebook) запросов REST на мой сервер node.js в приложении PhoneGap Добавить несколько строк в TextView Как подключить слушателя к переключателю FragmentPagerAdapter не удаляет элементы (фрагменты) правильно Есть ли способ запустить скрипт SL4A из каталога в другом месте? Использование Gson для анализа массива Json и объекта без имени Изменение размера указателя большого пальца Тип Enum не является общим; Его нельзя параметризовать с помощью аргументов <RestClient.RequestMethod> Как загрузить сервисы Google Play в эмулятор Android? Android загружает только изображения, которые видны в horizontalScrollView

Android TextView с выделенной областью в ListView не будет анимировать в первый раз, когда будет показано

У меня есть ListView с пользовательским адаптером. Каждый элемент в нем содержит TextView.

<TextView android:id="@+id/chat_name" android:layout_height="48dp" android:layout_width="match_parent" android:textColor="#FFFFFF" android:gravity="center_vertical" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" android:focusable="false" android:focusableInTouchMode="false"/> 

Мне нужно, чтобы этот TextView не фокусировался, потому что я полагаюсь на метод onListItemClick() . Как я узнал, onListItemClick() не срабатывает, если вы установите focusable="true" .

В адаптере я установил:

 TextView chatName = (TextView) v.findViewById(R.id.chat_name); chatName.setText(chat.getChatName()); chatName.setSelected(true); 

И он работает каждый раз, но сначала. Когда элемент добавляется к адаптеру, он отображается в списке, но он не помечен. Когда элемент кликается, отображается другое действие. После того, как пользователь вернется в ListView, элемент будет внезапно помечен. Я хочу, чтобы это все время торговалось.

Я уже пытался подклассифицировать TextView с помощью метода, который перезаписывает isFocused() чтобы всегда возвращать true, но это не помогло. Поведение оставалось прежним. Я также экспериментировал с различными значениями focusable и focusableInTouchMode атрибутов, но без успеха.

Пожалуйста, используйте функцию requestFocus () следующим образом.

 chatName.setSelected(true); chatName.requestFocus(); 

Я буду работать.

В свой пользовательский адаптер добавьте это в getView:

 chatName.addOnLayoutChangeListener(new OnLayoutChangeListener() { @Override public void onLayoutChange(View v, ....) { chatName.setSelected(true); } });