20

内部にボタンがあるリスト項目があります。

ボタンが表示されると、リスト項目はクリックできなくなります。再びクリックできるようにするために、ボタンをビューに置き換えました。問題は、リスト項目をクリックすると、ボタンが背景画像を変更することです (クリックした場合と同様)。この悪い動作をどのように回避できますか?

ありがとう

4

6 に答える 6

20

実際、素晴らしい説明を見つけました:http://android.cyrilmottier.com/?p=525

問題と解決策は非常によく説明されています。

于 2012-06-22T17:21:17.110 に答える
12

質問に答える@Matroskaが提供するリンクの一部:
追加する必要があります

android:descendantFocusability="blocksDescendants"

ListView のアイテムのレイアウトを定義する親 ViewGroup に。

注: これにより、ハードウェア ボタンのある内側のボタンに集中できなくなります。(すみません、まだコメントできません)

于 2014-05-05T13:22:35.990 に答える
2

これを試すことができます:

             yourButton.setFocusable(false);
             yourButton.setFocusableInTouchMode(false);
于 2012-06-23T06:52:16.467 に答える
-1

ビューのクリック動作を含む xml ファイルを作成できます。xml ファイル custom_button.xml (または任意の名前) を作成し、次のコードを入力します。

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Focused -->
    <item android:state_focused="true" android:state_pressed="false" android:color="@color/black"/>
    <!-- Pressed -->
    <item android:state_focused="false" android:state_pressed="true" android:color="@color/black"/>
    <!-- Focused+Pressed -->
    <item android:state_focused="true" android:state_pressed="true" android:color="@color/black"/>
    <!-- Disabled -->
    <item android:state_enabled="false" android:color="@color/dark_grey_text"/>
    <!-- Default -->
    <item android:color="@color/white"/>

</selector>

その後、

android:color=""

android:drawable=""

そして、それらをドローアブル フォルダーにあるドローアブル リソースに割り当てます。次に、ビューを含むレイアウトの xml ファイルに次を追加します。

android:background="custom_button"
于 2012-06-22T17:10:30.230 に答える