Don't show text in Material-styled switch
BUG: 15754341 Change-Id: Iae43b31c6e445207a0c95b48d0f0befac0f5cc78
This commit is contained in:
@@ -90,6 +90,7 @@ public class Switch extends CompoundButton {
|
||||
private boolean mSplitTrack;
|
||||
private CharSequence mTextOn;
|
||||
private CharSequence mTextOff;
|
||||
private boolean mShowText;
|
||||
|
||||
private int mTouchMode;
|
||||
private int mTouchSlop;
|
||||
@@ -188,6 +189,7 @@ public class Switch extends CompoundButton {
|
||||
mTrackDrawable = a.getDrawable(com.android.internal.R.styleable.Switch_track);
|
||||
mTextOn = a.getText(com.android.internal.R.styleable.Switch_textOn);
|
||||
mTextOff = a.getText(com.android.internal.R.styleable.Switch_textOff);
|
||||
mShowText = a.getBoolean(com.android.internal.R.styleable.Switch_showText, true);
|
||||
mThumbTextPadding = a.getDimensionPixelSize(
|
||||
com.android.internal.R.styleable.Switch_thumbTextPadding, 0);
|
||||
mSwitchMinWidth = a.getDimensionPixelSize(
|
||||
@@ -533,14 +535,37 @@ public class Switch extends CompoundButton {
|
||||
requestLayout();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets whether the on/off text should be displayed.
|
||||
*
|
||||
* @param showText {@code true} to display on/off text
|
||||
* @hide
|
||||
*/
|
||||
public void setShowText(boolean showText) {
|
||||
if (mShowText != showText) {
|
||||
mShowText = showText;
|
||||
requestLayout();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return whether the on/off text should be displayed
|
||||
* @hide
|
||||
*/
|
||||
public boolean getShowText() {
|
||||
return mShowText;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||
if (mOnLayout == null) {
|
||||
mOnLayout = makeLayout(mTextOn);
|
||||
}
|
||||
if (mShowText) {
|
||||
if (mOnLayout == null) {
|
||||
mOnLayout = makeLayout(mTextOn);
|
||||
}
|
||||
|
||||
if (mOffLayout == null) {
|
||||
mOffLayout = makeLayout(mTextOff);
|
||||
if (mOffLayout == null) {
|
||||
mOffLayout = makeLayout(mTextOff);
|
||||
}
|
||||
}
|
||||
|
||||
mTrackDrawable.getPadding(mTempRect);
|
||||
@@ -568,9 +593,10 @@ public class Switch extends CompoundButton {
|
||||
@Override
|
||||
public void onPopulateAccessibilityEvent(AccessibilityEvent event) {
|
||||
super.onPopulateAccessibilityEvent(event);
|
||||
Layout layout = isChecked() ? mOnLayout : mOffLayout;
|
||||
if (layout != null && !TextUtils.isEmpty(layout.getText())) {
|
||||
event.getText().add(layout.getText());
|
||||
|
||||
final CharSequence text = isChecked() ? mTextOn : mTextOff;
|
||||
if (text != null) {
|
||||
event.getText().add(text);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6747,6 +6747,8 @@
|
||||
<attr name="switchPadding" format="dimension" />
|
||||
<!-- Whether to split the track and leave a gap for the thumb drawable. -->
|
||||
<attr name="splitTrack" />
|
||||
<!-- Whether to draw on/off text. -->
|
||||
<attr name="showText" format="boolean" />
|
||||
</declare-styleable>
|
||||
|
||||
<declare-styleable name="Pointer">
|
||||
|
||||
@@ -493,11 +493,12 @@ please see styles_device_defaults.xml.
|
||||
<item name="thumb">@drawable/switch_thumb_material_anim</item>
|
||||
<item name="splitTrack">true</item>
|
||||
<item name="switchTextAppearance">@style/TextAppearance.Material.Widget.Switch</item>
|
||||
<item name="textOn"></item>
|
||||
<item name="textOff"></item>
|
||||
<item name="textOn">@string/capital_on</item>
|
||||
<item name="textOff">@string/capital_off</item>
|
||||
<item name="switchMinWidth">4dip</item>
|
||||
<item name="switchPadding">4dip</item>
|
||||
<item name="background">?attr/selectableItemBackgroundBorderless</item>
|
||||
<item name="showText">false</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Material.EditText" parent="Widget.EditText"/>
|
||||
|
||||
Reference in New Issue
Block a user