我想减小 Switch 的宽度。How to change the size of a Switch Widget and How to change Width of Android's Switch track?中的当前解决方案?没有解决我的问题。android:switchMinWidth
刚刚定义了 minWidth,但我希望它小于2 x thumbWidth
size。
我深入研究SwitchCompat
类的onMeasure()
功能。定义宽度的方式如下。
// Adjust left and right padding to ensure there's enough room for the
// thumb's padding (when present).
int paddingLeft = padding.left;
int paddingRight = padding.right;
if (mThumbDrawable != null) {
final Rect inset = DrawableUtils.getOpticalBounds(mThumbDrawable);
paddingLeft = Math.max(paddingLeft, inset.left);
paddingRight = Math.max(paddingRight, inset.right);
}
final int switchWidth = Math.max(mSwitchMinWidth,
2 * mThumbWidth + paddingLeft + paddingRight);
final int switchHeight = Math.max(trackHeight, thumbHeight);
mSwitchWidth = switchWidth;
mSwitchHeight = switchHeight;
我正在考虑使用负填充,但是有这条线paddingLeft = Math.max(paddingLeft, inset.left);
。我不确定如何将 设置为inset
具有负值的拇指可绘制对象(我不知道是什么inset
。OpticalBounds
也许这应该是另一个 stackoverflow 问题)。
任何人都知道如何缩小 SwitchCompat 的宽度?
更新我已在此https://code.google.com/p/android/issues/detail?id=227184&thanks=227184&ts=1478485498 上向 google 提出请求