我有问题与Android seekbar似乎有一个默认的填充seekbar视图,我似乎不能删除它,我尝试设置填充“0 dp”,并尝试设置边距“-10dp”,看看它是否删除了一些空间,并尝试设置背景为空的情况下,有一个背景占用空间,但似乎什么都没有发生,SeekBar标签是:
<SeekBar
android:paddingLeft="0px"
android:paddingRight="0px"
android:background="@null"
android:id="@+id/musicSeekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
**编辑:**经过一些测试和尝试,我了解到:
1.填充取决于拇指可绘制的大小
1.设置android:thumb="@null"
将删除底部和顶部填充
1.即使我删除了缩略图,左右填充也会保留,但可以通过在两侧设置一个等于默认缩略图可绘制宽度除以2的负边距来删除,因此如果是32 dp,则两侧为16 dp
现在我需要知道是否有更干净的方法来去除填充物,拇指大小在所有设备上都一样吗?欢迎任何帮助。
5条答案
按热度按时间drnojrws1#
我意识到这是3年后,但对于任何人喜欢我仍然无法找到这个解决方案,在这里。问题是拇指可绘制添加顶部/底部填充(尝试将thumb drawable设置为
@null
,然后观察填充消失)解决方案是将所有内容偏移thumb drawable大小的一半。要确保布局在设备之间保持一致,我们将创建一个自定义的拇指可绘制对象,以便控制大小。第1步:创建一个自定义拇指可绘制对象。
步骤2:设置SeekBar。
splitTrack=false
以修复自定义缩略图可绘制对象从栏中填充空白空间的问题。步骤3:设置媒体栏布局。
这是正确排列所有内容的关键。媒体栏将由顶级父布局组成,其中包含(1)搜索栏,以及(2)包含其他一切的内亲(播放/暂停,后退/前进,曲目时间,等)。顶层父对象需要具有透明背景,高度为
wrap_content
。内部-家长需要有任何背景颜色,你想你的媒体栏,和高度的任何高度,你想你的媒体栏。将内部父对象设置为与顶层父对象顶部对齐,顶部边距为自定义缩略图可绘制对象高度的一半,在我们的示例中为5dp。这将偏移媒体栏中的所有内容,以便SeekBar显示为正好位于其顶部。
以下是使用ConstraintLayout的示例。
jaxagkaj2#
要从Seekbar中删除填充,必须在运行时执行:
======================或========================
您不需要设置
android:thumb="@null"
ovfsdjhp3#
只需将minHeight设置为0dp,它将“删除”上下的填充。
0g0grzrc4#
我的解决方案与上面描述的类似,但在我看来要短一些。它只是基于这样一个事实:seekbar thumb drawable的大小需要根据您在SeekBar元素上定义的属性android:minHeight和android:maxHeight重新定义。只需注意value**@dimen/seek_bar_height***在哪里使用。
最终的SeekBar如下所示:
组件本身:
资源 @drawable/seekbar 简单定义为:
和 @drawable/seekbar_thumb 作为:
虽然手动进度选择仍然是可能的,但用户可能会觉得有点不舒服,因为“拇指”是不可见的。所以请小心使用。
bmp9r5qi5#
只需在XML代码中写入这些行,并根据需要更改值即可。