7

Android Switch ウィジェットの外観をカスタマイズするのに問題があります。サム (通常はオンまたはオフを示す小さなボタン部分) とトラック (サムがスライドする背景) に使用するカスタム xml ドローアブルがあります。android:thumb を使用して親指だけを設定すると、正常に動作します。トラックを設定すると (親指が設定されているかどうかに関係なく)、スイッチが完全に消え、テキストだけが表示されたままになります。

親指だけが適用されたときの私のコードは次のとおりです。

<com.blahblahblah.blah.CustomSwitch
    android:id="@+id/switch_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textOff="Off"
    android:textOn="On"
    android:text="Something Awesome"
    android:textColor="@android:color/black"
    android:thumb="@drawable/custom_switch_thumb" />

プレビュー ウィンドウでは次のように表示されます。

ここに画像の説明を入力

トラックを適用すると、次のようになります。

<com.blahblahblah.blah.CustomSwitch
    android:id="@+id/switch_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textOff="Off"
    android:textOn="On"
    android:text="Something Awesome"
    android:textColor="@android:color/black"
    android:track="@color/track_color" />

トラックが適用されたプレビュー ウィンドウ:

ここに画像の説明を入力

参考までに、OSX 10.7.5 で Android Studio 0.2.3 を使用しています。

4

2 に答える 2

22

同じ問題に出くわし、HoloEverywhere issue trackerで修正を見つけました。<size>使用している描画可能な XML シェイプのを設定する必要があります。

動作していません (ウィジェットがあり、操作できますが、表示されず、非表示になっています):

<shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="rectangle">

  <solid android:color="@color/black_50" />
</shape>

作業中(追加されていない<size>):

<shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="rectangle">

  <solid android:color="@color/black_50" />
  <size android:width="56dp" android:height="20dp" />
</shape>
于 2013-10-17T12:46:34.307 に答える
0

一般に、画像を変更するためだけにコントロールをサブクラス化する必要はありません。たとえば、スタイル属性を使用してスタイルを設定できます。

あなたの問題については、単色ではなくドローアブルを期待するいくつかのコントロールがあります。コントロール定義 (xml 部分) では、参照を許可するように定義することはできますが、描画可能な参照に制限することはできません。したがって、色を直接使用することは避けてください。画像を追加したくない場合は、xml で定義することもできますが、これはすべての場合に機能するとは限らないことに注意してください。

于 2013-09-06T21:20:06.180 に答える