2014-09-02 13 views
5

aufnehmen kann Ich habe ein SeekBar in einem RelativeLayout, dessen Breite gleich der Bildschirmbreite ist.Wie SeekBar die volle Breite des Elterns

Ich habe layout_width="match_parent" auf die SeekBar angewendet, aber es scheint etwas Platz auf beiden Seiten der SeekBar zu halten, um den Daumen unterzubringen.

Ich habe auch versucht mit android:thumb="@null" Der Daumen ist weg, aber nicht der leere Platz an den Seiten.

Ich muss wirklich die SeekBar Breite der Eltern entsprechen. Könnte mir jemand dabei helfen? Vielleicht könnte ich eine benutzerdefinierte SeekBar Klasse erstellen und die Breite auf die übergeordnete Breite in onMeasure() festlegen. Wenn dies eine mögliche Lösung ist, weiß ich nicht, wie ich die Elternbreite an die Klasse SeekBar übergeben könnte.

Jede Hilfe wird geschätzt. Vielen Dank.

+0

Können Sie die XML-Datei posten, verwenden Sie native Grafiken, die Sie verwenden? – Niko

+0

Bitte zeigen Sie Xml und Screenshot von was Sie wollen und was Sie bekommen. –

Antwort

17

Versuchen mit dem SeekBar in xml folgenden definieren:

android:padding="0dp" 
+1

Ich bin ziemlich überrascht, dass das tatsächlich funktioniert hat! Danke vielmals. Ich hätte nie darüber nachgedacht, weil ich nie erwartet hätte, dass es eine Auffüllung geben würde, wenn ich es nicht im Layout definiert hätte. – DavidH

+0

Es funktioniert aber dann ist der Daumen nicht in der richtigen Position. –

+5

es funktioniert nicht in API 17 oder höher http://stackoverflow.com/questions/33327246/how-to-make-android-seekbar-full-width-in-api-17-oder-above – sajad

0

Bevor Sie Ihre xml schreiben, ich denke, dass Ihre RelativeLayout Linien folgend hat

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

Dies bedeutet, dass Ihr RelativeLayout nicht ausfüllen Auf dem Bildschirm wird die Suchleiste in ihrem übergeordneten Layout (RelativeLayout) aufgefüllt. So können Sie die gewünschte Ansicht nicht sehen.

+0

arbeiten Ich habe keine Paddings in der übergeordneten Ansicht. Aber danke für deine Antwort. – DavidH

3

Gerade löste dieses Problem in meiner App. Die Sache ist, obwohl Sie das seekBar-Padding nicht gesetzt haben, gibt es einige Paddings (paddingLeft, paddingTop, paddingRight, paddingBottom, paddingStart, paddingEnd) in dem Thema, das Ihr appTheme erweitert. Setzen Sie diese Padding auf 0dp, sollte es gut funktionieren.

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

Arbeitete für mich.