スイッチの幅を小さくしたい。 How to change the size of a Switch WidgetとHow to change Width of Android's Switch track?の現在の解決策は私の問題を解決していません。 android:switchMinWidth
はminWidthを定義したばかりですが、それは2 x thumbWidth
サイズよりも小さくしたいです。SwitchCompatの幅を縮小する方法は?
SwitchCompat
class' onMeasure()
functionに掘り下げます。幅の定義方法は次のとおりです。
// 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
あなたの問題を解決するためにあなた自身のトラックと親指drawableを作るでしょう。サイズを縮小する標準的な方法はありません。 – dex
すでに自分の親指を描くことができます。それは、サムのドロアブルがやや大きいので問題です。しかし、私は自分のトラックの長さを2倍にしたくありません。私のトラックを持っているのは、スイッチの幅がトラックの描画可能な長さに依存していないように見えるからです。 – Elye