スイッチの幅を狭くしたい。Switchウィジェットのサイズを変更する方法とAndroidのスイッチトラックの幅を変更する方法の現在の解決策は? 私の問題を解決していません。android:switchMinWidth
minWidth を定義しただけですが、サイズよりも小さくしたいのです2 x thumbWidth
。
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
。おそらくこれは別のスタックオーバーフローの質問になるはずです)。
SwitchCompat の幅を縮小する方法を知っている人はいますか?
更新このhttps://code.google.com/p/android/issues/detail?id=227184&thanks=227184&ts=1478485498 で Google にリクエストを提出しました