我想將自定義樣式應用於SwitchCompat。更改可打開和關閉狀態的文字。我怎樣才能做到這一點?我無法找到有關如何完成的任何示例。我想在我的styles.xml以下,但顯然我沒有使用正確的父:如何將自定義樣式應用於SwitchCompat
<style name="Switch" parent="android:Widget.AppCompat.Widget.CompoundButton.SwitchCompat">
<item name="android:textOn">@string/common_yes</item>
<item name="android:textOff">@string/common_no</item>
<item name="android:thumb">@drawable/btn_switch_selector</item>
<item name="android:track">@drawable/btn_switch_bg_selector</item>
</style>
編輯
我設法改變可繪製代碼。
switchView.setThumbResource(R.drawable.btn_switch_selector);
switchView.setTrackResource(R.drawable.btn_switch_bg_selector);
但我還沒有找到方法來改變開關的文本。以下片段似乎不起作用。也許我需要設置更多的文本屬性?
switchView.setTextOn(context.getString(R.string.common_yes));
switchView.setTextOff(context.getString(R.string.common_no));
按照SwitchCompat源代碼應該有開/關文本支持: https://android.googlesource.com/platform/frameworks/support/+/421d8baa4a524e1384bcf033360bccaf8d55081d/v7/appcompat/src/android/support/v7/widget/SwitchCompat.java
的{@link #setText(CharSequence的)文本} 屬性控制在標籤顯示的文本開關,而文本 {@link #setTextOff(CharSequence)off}和{@link #setTextOn(CharSequence)}文本 控制拇指上的文本。
編輯2
終於找到代碼溶液。顯然setShowText()
需要設置爲true
以使文本出現在交換機上。
switchView.setTextOn(context.getString(R.string.common_yes));
switchView.setTextOff(context.getString(R.string.common_no));
switchView.setShowText(true);
switchView.setThumbResource(R.drawable.btn_switch_selector);
switchView.setTrackResource(R.drawable.btn_switch_bg_selector);
和XML解決方案
<android.support.v7.widget.SwitchCompat
android:id="@+id/view_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:thumb="@drawable/btn_switch_selector"
app:track="@drawable/btn_switch_bg_selector"
android:textOn="@string/common_yes"
android:textOff="@string/common_no"
app:showText="true" />
我還是想知道如果有把這個styles.xml
的方式。
問題,詢問如何可以做到,或者例如,可以關閉爲「要求場外資源」。請重新說出你的問題,告訴我們你試過的是什麼(它嘗試過)。不要忘記訪問[問](http://stackoverflow.com/help/asking)部分,看看這裏有什麼樣的問題。我會等待你的編輯/刪除。謝謝。 – DroidDev 2014-12-19 08:18:14