当在视图中使用自定义拇指可绘制对象时SeekBar
,拇指可绘制对象在视图的左右边缘被剪裁。
我该如何解决这种行为?
您应该能够通过将拇指宽度设置为一半来解决此问题paddingLeft
(paddingRight
请SeekBar
记住使用与密度无关的单位)。您还可以通过调用来控制搜索栏拇指边缘允许的空间setThumbOffset
。
我自己遇到了这个问题,我相信"correct"
决定将修改android:thumbOffset
为SeekBar的默认样式将其设置为 8px。
对于默认的 SeekBar,我使用了这些设置并且效果很好:
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:thumbOffset="8dp"
只是为了澄清。
在我见过的一些地方
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>
从
我的默认搜索栏拇指的底部被剪掉了。这里的修复都没有奏效。我最终使用
android:clipToPadding="false"
在父视图上。这解决了问题。
<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" />
这可以完成工作
没有什么对我有用,但我只是改变了拇指的颜色,然后改变了父布局的背景颜色,它对我有用。