310

listView 行に触れたときに発生するオレンジ色のハイライトを無効にしたい。これまでのところ、xml で次のことを試しました。

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

詳細: ユーザーがこの listView オブジェクトの画面に触れたときに、差がないようにしたいと考えています。

4

15 に答える 15

685

これを xml に追加します。

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

そして、問題についてはこれでうまくいくかもしれません(よくわかりませんし、より良い解決策があるかどうかもわかりません):

ColorStateListを TextView に適用できます。

于 2010-05-25T21:00:51.810 に答える
190

RoflcoptrExceptionの答えはうまくいくはずですが、何らかの理由でそれは私にはうまくいきませんでした、それで私は私のために働いた解決策を投稿しています、それが誰かを助けることを願っています

<ListView 
android:listSelector="@android:color/transparent" 
android:cacheColorHint="@android:color/transparent"
/>
于 2012-09-03T05:44:24.287 に答える
101

オレンジ色のハイライト効果は、ListView のスタイルです。この記事では、listView スタイルをオーバーライドする方法の概要を説明しています。

基本的に、現在の状態に基づいてさまざまなスタイル要素を指定するセレクターがあります。

短くて迅速な解決策については、これを参照してください https://stackoverflow.com/a/12242564/185022

于 2010-05-25T18:32:47.687 に答える
63

ListViewから : フォーカス ハイライトを無効にします。

ListAdapter次のコードを使用するように設定するとき

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

BaseAdapterこれにより、クラスがオーバーライドされます。また、セル間の白枠も解除されます。

于 2010-11-02T05:06:45.323 に答える
39

これをlistselectorと一緒にurXMlにも追加します。それが機能することを願っています

<ListView
android:cacheColorHint="@android:color/transparent"
android:listSelector="@android:color/transparent"/> 
于 2011-09-16T05:39:51.283 に答える
13

仮想デバイスと実際のデバイスでいくつかの「グーグル」とテストを行った後、以下のコードが機能することに気付きました。

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

その部分を省略していることに注意してareAllItemsEnabled()ください。

于 2012-02-09T07:26:46.973 に答える
11

これ以外には何も役に立ちません:

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"
于 2012-06-05T13:14:51.253 に答える
7

コードで

listView.setSelector(getResources().getDrawable(R.drawable.transparent));

小さな透明な画像を描画可能なフォルダーに追加します。

Like: transparent.xml

<?xml version="1.0" encoding="utf-8"?>    
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#00000000"/>
</shape>
于 2013-04-21T12:24:54.590 に答える
6

私にとってandroid:focusableInTouchMode="true"は進むべき道です。android:listSelector="@android:color/transparent" 役に立たない。各行に多数のオブジェクトを含むカスタム リストビューを使用していることに注意してください。

于 2012-03-21T19:31:22.607 に答える
5

別の方法として:

listView.setSelector(android.R.color.transparent);

また

listView.setSelector(new StateListDrawable());
于 2016-09-27T10:41:32.187 に答える
5

以下を追加するだけです。 android:cacheColorHint="@android:color/transparent"

于 2013-03-03T10:59:19.973 に答える
0

posから取得したものを取得して、次のことを行うことができonItemClick ます。

listView.setItemChecked(pos, false);

それが私が知っている最良の方法です

于 2016-11-02T09:11:17.360 に答える
0

単一のリスト ビュー アイテムの強調表示を無効にするが、セルを有効にしたままにする場合は、そのセルの背景色を設定して強調表示を無効にします。

たとえば、セル レイアウトで次のように設定します。android:background="@color/white"

于 2016-07-19T15:45:16.897 に答える