web-dev-qa-db-ja.com

Android SeekBarのつまみがクリップ/切り取られる

SeekBarビューでカスタムサムドロアブルを使用する場合、サムドロアブルはビューの左端と右端でクリップされます。

この動作を修正するにはどうすればよいですか?

44
Jana

これを修正するには、paddingLeftpaddingRight およびSeekBarをサム幅の半分に設定する必要があります(密度に依存しない単位を使用することを忘れないでください)。また、 setThumbOffset を呼び出すことで、シークバーの親指の端で許可されるスペースを制御できます。

91
Roman Nurik

私は自分でこの問題にぶつかりましたが、"correct"変更はAndroid:thumbOffsetは、SeekBarのデフォルトスタイルとして8pxに設定します。

28
Nicholi

デフォルトのSeekBarではこれらの設定を使用しましたが、正常に動作します:

Android:paddingLeft="6dp"
Android:paddingRight="6dp"

Android:thumbOffset="8dp"
7
kayz1

明確にするためだけに。

私が見たいくつかの場所で

 Android:thumbOffset="8dp"

いくつかの

Android:thumbOffset="8px"

だから私はソースコードを見ました。これは元のスタイルです

<style name="Widget.SeekBar">
        <item name="Android:indeterminateOnly">false</item>
        <item name="Android:progressDrawable">@Android:drawable/progress_horizontal</item>
        <item name="Android:indeterminateDrawable">@Android:drawable/progress_horizontal</item>
        <item name="Android:minHeight">20dip</item>
        <item name="Android:maxHeight">20dip</item>
        <item name="Android:thumb">@Android:drawable/seek_thumb</item>
        <item name="Android:thumbOffset">8dip</item>
        <item name="Android:focusable">true</item>
    </style>

から

https://Android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/styles.xml

0
kakopappa