2014-09-02 93 views
5

我有SeekBarRelativeLayout宽度等于屏幕宽度。如何使SeekBar占用父宽度的全部宽度

我将layout_width="match_parent"应用于SeekBar,但它似乎在SeekBar的两侧保留了一些空白空间以容纳拇指。

我也尝试过使用android:thumb="@null"拇指不见了,但不是两侧的空白空间。

我真的需要使SeekBar宽度匹配父母的。有人能帮助我吗?也许我可以创建一个自定义SeekBar类,并将其宽度设置为onMeasure()中的父宽度。如果这是一个可能的解决方案,我不知道如何将父宽度传递给SeekBar类。

任何帮助表示赞赏。谢谢。

+0

你可以发布的XML,是你使用的原生图形? – Niko 2014-09-02 06:32:14

+0

请显示你想要的xml和屏幕截图以及你得到的。 – 2014-09-02 06:32:32

回答

17

尝试定义与XML的SeekBar如下:

android:padding="0dp" 
+1

我很惊讶,这实际上工作!非常感谢。我永远不会想到这一点,因为我从来没有想过任何填充,除非我已经在布局中明确定义它。 – DavidH 2014-09-02 06:57:19

+0

它的作品,但拇指不在正确的位置。 – 2014-10-10 13:16:00

+5

它不适用于API 17或更高版本http://stackoverflow.com/questions/33327246/how-to-make-android-seekbar-full-width-in-api-17-or-above – sajad 2015-10-25 08:39:23

0

您发布的XML之前,我猜你的RelativeLayout有线路如下

android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 

这意味着你的RelativeLayout不填在屏幕上,seekbar将填充其父级布局(RelativeLayout)。因此,您无法获得您想要的视图。

+0

我没有父视图上的填充。但是,谢谢你的回复。 – DavidH 2014-09-02 06:55:42

3

刚才在我的应用程序中解决了这个问题。事情是,即使你没有设置seekBar填充,在你的appTheme扩展的主题中可能会有一些填充(paddingLeft,paddingTop,paddingRight,paddingBottom,paddingStart,paddingEnd)。将这些填充设置为0dp,它应该可以正常工作。

3
android:paddingStart="0dp" 
android:paddingEnd="0dp" 

为我工作。