Android: wyłączanie podświetlenia na listView kliknij
Chcę wyłączyć pomarańczowe podświetlenie, które występuje podczas dotykania wiersza listView. Do tej pory w moim xml próbowałem następujące:
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"
Więcej informacji: chcę, aby była zerowa różnica, gdy użytkownik dotknie ekranu tego obiektu listView.
15 answers
Dodaj to do swojego xml:
android:listSelector="@android:color/transparent"
A w przypadku problemu to może zadziałać (nie jestem pewien i nie wiem czy są lepsze rozwiązania):
Możesz zastosować ColorStateList do widoku tekstu.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-30 23:30:09
ODPOWIEDŹ RoflcoptrException powinna zadziałać, ale z jakiegoś powodu nie zadziałało dla mnie, więc zamieszczam rozwiązanie, które działało dla mnie, mam nadzieję, że komuś pomoże
<ListView
android:listSelector="@android:color/transparent"
android:cacheColorHint="@android:color/transparent"
/>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-05 19:56:47
Efekt pomarańczowego podświetlenia to styl w widoku listy. Ten artykuł daje dobry przegląd sposobu nadpisania stylu listView.
Zasadniczo masz selektor, który określa różne elementy stylu na podstawie bieżącego stanu.
Zobacz to krótkie i szybkie rozwiązanie https://stackoverflow.com/a/12242564/185022
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:29
From ListView: Disable Focus Highlight ,
Po ustawieniu ListAdapter
Użyj następującego kodu
ListAdapter adapter = new SimpleCursorAdapter(MyList, Layout, c,
new String[] { "Name", "Score" }, to)
{
public boolean areAllItemsEnabled()
{
return false;
}
public boolean isEnabled(int position)
{
return false;
}
};
To nadpisze klasę BaseAdapter
. Usuwa również białą granicę między komórkami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-15 21:48:15
Dodaj to również do ur XMl wraz z listselector..mam nadzieję, że to zadziała
<ListView
android:cacheColorHint="@android:color/transparent"
android:listSelector="@android:color/transparent"/>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-10 15:54:31
Jeśli używasz ArrayAdapter
lub BaseAdapter
do wypełniania elementów listy. Override
metoda isEnabled
I return false
.
@Override
public boolean isEnabled (int position) {
return false;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-12 13:24:06
Po kilku "google" i testach na wirtualnych i rzeczywistych urządzeniach, zauważyłem, że mój poniższy kod działa:
ArrayAdapter<String> myList = new ArrayAdapter<String>(this, R.layout.list_item, strText) {
public boolean isEnabled(int position)
{
return false;
}
};
Zauważ, że pominąłem areAllItemsEnabled()
część.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-09 07:26:46
Nic mi nie pomaga oprócz tego:
transparent_drawable.xml
:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00000000"/>
</shape>
layout.xml
:
android:listSelector="@drawable/transparent_drawable"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-15 21:44:43
W kodzie
listView.setSelector(getResources().getDrawable(R.drawable.transparent));
I dodaj mały przezroczysty obraz do folderu drawable.
Jak: przezroczysty.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00000000"/>
</shape>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-30 03:28:00
Dla mnie android:focusableInTouchMode="true"
jest droga do zrobienia. android:listSelector="@android:color/transparent"
jest bezużyteczny. Zauważ, że używam niestandardowego widoku listy z liczbą obiektów w każdym wierszu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-21 19:31:22
Wystarczy dodać:
android:cacheColorHint="@android:color/transparent"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-03 11:31:41
Jako alternatywa:
listView.setSelector(android.R.color.transparent);
Lub
listView.setSelector(new StateListDrawable());
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-24 05:33:59
Jest na to szybki i łatwy sposób: W metodzie:
private void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
{
//TODO
((ListView)sender).SelectedItem = null;
}
Mam nadzieję, że to pomoże;)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-08 17:15:27
Jeśli chcesz wyłączyć podświetlanie dla pojedynczego elementu widoku listy, ale pozostaw komórkę włączoną, Ustaw kolor tła dla tej komórki, aby wyłączyć podświetlanie.
Na przykład w układzie komórki Ustaw android:background="@color/white"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-19 15:58:30
Możesz po prostu uzyskać pos
, które otrzymujesz z onItemClick
i do:
listView.setItemChecked(pos, false);
That ' s the best way i know of
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-02 09:11:17