<SeekBar
android:id="@+id/sb_progress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:maxHeight="6dp"
android:minHeight="6dp"
android:paddingEnd="0dp"
android:paddingStart="0dp"
android:thumbOffset="0dp"
android:progressDrawable="@drawable/seekbar_videoplay_style"
android:thumb="@mipmap/media_thumb" />

这种情况是因为SeekBar有个mThumbOffSet属性,默认把它设置为
mThumbOffset = thumb.getIntrinsicWidth() / 2; 即thum的宽度的一半
要在SeekBar中写下这句代码,即可解决。
android:thumbOffset="0dp"
android SeekBar thumb显示不全的原因_-每天进步一点点-的博客-CSDN博客
如果按住拖动变大。到两边还是显示不全,需要监听修改
mSeekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar, i: Int, b: Boolean) {
if (b) {
MLog.i(TAG, "onProgressChanged progress = $i , fromUser = $b")
}
}
override fun onStartTrackingTouch(seekBar: SeekBar) {
MLog.i(TAG, "onStartTrackingTouch...")
seekBar.isSelected = true
//按住变大
mSeekBar.thumb = context?.let { ContextCompat.getDrawable(it, R.drawable.seekbar_thumb_big) }
//这个要在后面设置
mSeekBar.thumbOffset = ScreenUtil.dp2px(context, 0f)
}
override fun onStopTrackingTouch(seekBar: SeekBar) {
MLog.i(TAG, "onStopTrackingTouch...")
seekBar.isSelected = false
//松开变小
mSeekBar.thumb = context?.let { ContextCompat.getDrawable(it, R.drawable.seekbar_thumb_small) }
//这个要在后面设置 恢复变小
mSeekBar.thumbOffset = 0
}
})
