当使用自定义的图像作为 SeekBar
视图的滑块时,滑块会在视图的左右边缘被裁剪。
如何修复这种行为?
当使用自定义的图像作为 SeekBar
视图的滑块时,滑块会在视图的左右边缘被裁剪。
如何修复这种行为?
你可以通过设置 paddingLeft
和 paddingRight
为拇指宽度的一半(记得使用密度无关单位)来解决这个问题。还可以通过调用 setThumbOffset
控制滑块边缘允许的空间。
“正确”
的决定是修改android:thumbOffset
,因为SeekBar的默认样式将其设置为8像素。android:thumbOffset
在2.3.3上没有效果,但是您可以使用setThumbOffset
方法。 - Brtle对于默认的SeekBar,我使用了以下设置,它可以很好地工作:
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:thumbOffset="8dp"
android:clipToPadding="false"
仅供澄清。
在一些地方我看到了:
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>
从
对我来说没有什么方法有效,但是我只是将滑块的颜色与父布局的背景颜色不同,这样就可以了。
<androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/progress_loan_period"
android:layout_width="@dimen/dp_0"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:progressDrawable="@drawable/seek_bar"
android:thumb="@drawable/ic_slider"
android:paddingStart="@dimen/dp_0"
android:paddingEnd="@dimen/dp_0"
android:thumbOffset="-0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/label_loan_period" />
这可以完成工作
android:thumbOffset="-0dp"
就完成了。 - Yoraco Gonzales