2016-03-30 10 views
1

私は新しいデバイスでアンドロイド5.1.1で自分のアプリをテストしました。私のSettingsActivityにはスイッチがあります。私はすでにいくつかの記事を読んでそれをandroid.support.v7.widget.SwitchCompatに変更しましたが、問題はまだ次のようなものです:私の古いデバイスでは、スイッチはとても素敵です。 textOntextOffの2つのテキストを設定でき、完全に適合します。しかし、API 21または何ので、私はここに、この小さな野郎を得る:それは****のように見えるAndroid SwitchCompat style

enter image description here

。どのように私はロリポップスイッチのようなすべてのデバイスのためにそれを改造することができますか?

編集: 上記の質問に答えます。 一つの小さな事が欠落しています。スイッチ上のテキストの色を変更する方法(未左側のタグ!!!)

のstyles.xml

<style name="SwitchTextAppearance" parent="TextAppearance.AppCompat.Widget.Switch"> 
     <item name="android:textSize">12sp</item> 
     <item name="android:textColor">#3F51B5</item> 
    </style> 

レイアウト。 XML

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="8dp" 
    android:paddingRight="8dp" 
    android:paddingBottom="12dp" 
    android:paddingTop="12dp"> 

    <android.support.v7.widget.SwitchCompat 
     android:id="@+id/mySwitch" 
     android:layout_width="match_parent" 
     android:switchMinWidth="56dp" 
     android:layout_height="wrap_content" 
     android:switchTextAppearance="@style/SwitchTextAppearance" 
     android:thumb="@drawable/thumb" 
     android:track="@drawable/track" 
     app:showText="true" 
     android:textOn="ON" 
     android:textOff="OFF" 
     android:text="Toggle Switch" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:background="@android:color/transparent" 
     android:button="@null" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true"/> 

</RelativeLayout> 
+0

'layout'と関連する' style' xmlsを投稿できますか? –

+0

私はそれを得たと思う。 switchButton-textの色を変更する方法はありますか? –

+1

答えを更新し、スタイルにテキストの色を追加しました。 –

答えて

3

あなたはスイッチ自体の内側に表示されるテキストのスタイルを設定することができSwitchCompat.setSwitchTextAppearanceを使用します。

は次のようなスタイルのものを追加し、 setSwitchTextAppearanceを使用して設定します。

<style name="SwitchTextAppearance" parent="TextAppearance.AppCompat.Widget.Switch"> 
    <item name="android:textSize">12sp</item> 
    <item name="android:textColor">#3F51B5</item> 
</style> 

そして、あなたは、サイズ、色など、あなたの「OFF」のテキストをカスタマイズすることができるはずです。

+0

あなたのパターンを使用しましたが、うまくいかないようです。 アンドロイド:switchTextAppearance = "@ style/SwitchTextAppearance" –

+2

アンドロイド:switchTextAppearance = "@ style/SwitchTextAppearance"は認識された属性ではありません。 'xmlns:app =" http://schemas.android.com/apk/res-auto "名前空間を使う必要があるので、' app:switchTextAppearance = "@ style/SwitchTextAppearance" 'のようになります。 –

+0

私は編集しました私の投稿^^ –