Android: markering op listView-klik uitschakelen

Ik wil de oranje markering uitschakelen die optreedt bij het aanraken van een lijstweergaverij. Tot nu toe heb ik in mijn xml het volgende geprobeerd:

android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"

Meer informatie: ik wil dat er geen verschil is wanneer een gebruiker het scherm van dit listView-object aanraakt.


Antwoord 1, autoriteit 100%

Voeg dit toe aan uw xml:

android:listSelector="@android:color/transparent"

En voor het probleem kan dit werken (ik weet het niet zeker en ik weet niet of er betere oplossingen zijn):

U kunt een ColorStateListtoepassen op uw TextView .


Antwoord 2, autoriteit 28%

Het antwoord van RoflcoptrException zou het lukken, maar om de een of andere reden werkte het niet voor mij, dus ik plaats de oplossing die voor mij werkte, ik hoop dat het iemand helpt

<ListView 
android:listSelector="@android:color/transparent" 
android:cacheColorHint="@android:color/transparent"
/>

Antwoord 3, autoriteit 15%

Het oranje highlight-effect is een stijlin de ListView. Dit artikelgeeft een goed overzicht van hoe de listView-stijl te overschrijven.

In wezen heb je een selector die verschillende stijlelementen specificeert op basis van de huidige staat.

zie dit voor een korte en snelle oplossing https://stackoverflow.com/a/12242564/185022


Antwoord 4, autoriteit 9%

Van ListView: Focusmarkering uitschakelen,

wanneer u uw ListAdapterinstelt, gebruikt u de volgende code

ListAdapter adapter = new SimpleCursorAdapter(MyList, Layout, c, 
                new String[] { "Name", "Score" }, to) 
{ 
    public boolean areAllItemsEnabled() 
    { 
        return false; 
    } 
    public boolean isEnabled(int position) 
    { 
        return false; 
    } 
}; 

Dit zal de klasse BaseAdapteroverschrijven. Het annuleert ook de witte rand tussen cellen.


Antwoord 5, autoriteit 6%

voeg dit ook toe aan je XMl samen met listselector..hoop dat het werkt

<ListView
android:cacheColorHint="@android:color/transparent"
android:listSelector="@android:color/transparent"/> 

Antwoord 6, autoriteit 5%

Als u ArrayAdapterof BaseAdaptergebruikt om de lijstitems te vullen. Overridede isEnabledmethode en retourneer false.

@Override
  public boolean isEnabled (int position) {
    return false;
  }

Antwoord 7, autoriteit 2%

Na een paar keer ‘googlen’ en testen op virtuele en echte apparaten, merk ik dat mijn onderstaande code werkt:

ArrayAdapter<String> myList = new ArrayAdapter<String>(this, R.layout.list_item, strText) {
    public boolean isEnabled(int position) 
    { 
            return false; 
    } 
};

merk op dat ik het gedeelte areAllItemsEnabled()heb weggelaten.


8

U hoeft alleen maar toe te voegen:
android:cacheColorHint="@android:color/transparent"

Other episodes