6

スイッチの幅を狭くしたい。Switchウィジェットのサイズを変更する方法とAndroidのスイッチトラックの幅を変更する方法現在の解決策は? 私の問題を解決していません。android:switchMinWidthminWidth を定義しただけですが、サイズよりも小さくしたいのです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 にリクエストを提出しました

4

1 に答える 1