2016-07-25 11 views
0

ボタンのように動作するように、状態によって外観が異なるカスタムボタンレイアウトを作成できるかどうかは疑問です。たとえば、これらの状態を持つImageViewとTextViewを持つLinearLayoutです。カスタムボタンレイアウト(LinearLayout)の状態セレクタ

  • ボタンが赤色で正常状態、ディスプレイimage_normal.png及びテキストです。

  • ボタンがの場合、と表示されます。image_pressed.png、背景が赤色、テキストが白く表示されます。

  • ボタンがが無効になっている場合はと表示され、image_disabled.pngとテキストが灰色で表示されます。

ありがとうございます!

答えて

1

任意のビューに背景があり、任意のビューをクリック可能にすることができます。したがって、あなたが説明した背景にLinearLayoutを持つことが妨げられることはありません。 LinearLayoutのイメージをテキストの隣に置く必要はないことに注意してください。TextViewは、drawable[Left|Top|Right|Bottom]属性を使用して、テキストのいずれかの側にドロワーブルをサポートしています。

selectorドロアブルの構文については、documentationを参照してください。 Androidは上から下の状態を評価するので、順序を賢明に選択してください。上記のどれも該当しない場合、最後の項目は「デフォルト」状態でなければなりません。あなたが与えた例では、おそらく

<selector> 
    <item android:state_pressed="true" android:drawable="..." /> 
    <item android:state_enabled="true" android:drawable="..." /> 
    <item android:drawable="..." /> <!-- disabled --> 
</selector> 
+0

ありがとうKarakuriがあります。あるビューのセレクタを作成する方法はわかっていますが、異なるサブビューのセレクタを作ることができるかどうか、それらのすべてをどのように「同期する」のかはわかりません。 (TextViewについての提案をいただきありがとうございます。私はこれを使用することができますが、ボタンレイアウトの作成方法を知りたいのですが)。 –

+2

@FerranMaylinch子ビューに 'android:duplicateParentState =" true "'を与えて、親ビューと同じ状態にすることができます。その場合、すべての子も状態リスト描画可能な場合、それらは親と同じ状態を使用します。 – Karakuri

関連する問題