2017-11-12 10 views
0

を形作る...ボタンの透明セレクタを作成し、私は、次のXMLコードを使用して、私のボタンのセレクターを作成しようとしました

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:constantSize="true"> 
    <item android:drawable="@drawable/rectangular_transparent" android:state_enabled="true"></item> 
    <item android:drawable="@drawable/rectangular_grey" android:state_pressed="true"></item> 
</selector> 

これは私が定義した長方形の灰色の形状である...

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="@color/grey"/> 
    <stroke android:color="@android:color/transparent"/> 
    <corners android:radius="1dp"/> 
</shape> 

、これは私が定義した長方形の透明な形状である...私はDにそれを実行し

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="@android:color/transparent"/> 
    <stroke android:color="@color/grey" android:width="@dimen/_1sdp"/> 
    <corners android:radius="1dp"/> 
</shape> 

+0

両方の色が透明なので、何であっても透明のままです。 –

+0

両方の色が透明でないと見える場合、透明なストロークを使用して、灰色の塗りつぶしと灰色のストロークを使用して透明な塗りつぶしを行います... –

+0

どのようにクリックイベントを処理しているのかご教示ください –

答えて

0

セレクタ内の項目の順序は重要です。それは常に最初に適用されるものを選択します。だからあなたはそれらのアイテムを交換する必要があります。

あなたのケースでは、どのボタンが押されていても常にボタンが有効になっているため、常に最初のアイテムが選択されます。

+0

ありがとう:)私は15日の古い問題を解決しました:) –

+0

私はここに新しいです、これは文字通り私の最初の投稿です:) あなたのansを受け入れ、もう一度ありがとう:) –

0

あなたが必要...私は助けてください、透明以外の色を使用しようとすると

同じアプローチが働く... eviceは、それだけで透明ボタンを示していますが、私は押したときには、色を変更しません。

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
android:constantSize="true"> 
<item android:drawable="@drawable/rectangular_transparent" ></item> 
<item android:drawable="@drawable/rectangular_grey" android:state_pressed="true"></item> 

または

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
android:constantSize="true"> 
<item android:drawable="@drawable/rectangular_transparent" android:state_pressed="true"></item> 
<item android:drawable="@drawable/rectangular_grey"></item> 
:正しい方法でセレクタを使用します

+0

両方とも試してみました........ –

+0

編集済みの回答を使用してください。ストロークの幅をシェイプドロアブルに配置します。 – ADM

関連する問題