27 Stimmen

Die Fortschrittsleiste horizontal oben ausrichten (Lücke entfernen)

Ich versuche, eine horizontale Fortschrittsleiste oben in meinem Rahmen zu platzieren. Aber es scheint eine Polsterung zu geben, die ich einfach nicht entfernen konnte. Irgendwelche Hilfe?

Bildbeschreibung hier eingeben

32voto

bCliks Punkte 3038

Die Antwort von Pork'n'Bunny funktioniert bei Geräten ab API-Level 16. Diese Lösung hat bei allen Geräten funktioniert. Einfach um 6dp in XML nach oben verschieben.

4voto

Sathya Punkte 678

Vom Aussehen her denke ich, dass es durch das Bild verursacht wird, das im Standard-Styling verwendet wird

style="@android:style/Widget.Holo.ProgressBar.Horizontal"

(Das Bild, auf das ich mich beziehe, ist dieses: @android:drawable/progress_indeterminate_horizontal_holo und @android:drawable/progress_horizontal_holo_dark)

Diese Bilder haben viel Canvas-Hintergrund; daher zeigt es diese Lücke.

Meine Empfehlung:

Verwenden Sie ein benutzerdefiniertes Bild, um Ihre ProgressBar zu stylen. Eines, das nicht viel Canvas-Abstand hat.

Bildbeschreibung hier eingeben

4voto

C-- Punkte 16144

Eine vollständige Lösung für dieses Problem wäre wie folgt. Falls jemand Codefragmente benötigt, so habe ich dies gemacht.

  1. Kopierte alle 8 undeterminierten horizontalen Fortschrittsbalken-Zeichnungen
  2. Bearbeitete die Zeichnungen mit einem Bildmanipulator und entfernte unnötige Abstände
  3. Kopierte das zeichenbare XML mit dem Namen progress_indeterminate_horizontal_holo.xml von der Android-Plattform
  4. Kopierte den Stil Widget.ProgressBar.Horizontal und seine Eltern
  5. Setzte den Stil und die mindesthöhe manuell im Layout

Hier ist die progress_indeterminate_horizontal_holo.xml

Stil-Ressourcen wurden in meine lokalen Stil-Datei kopiert.

    <item name="android:textAppearance">@android:attr/textAppearance</item>

    <item name="android:indeterminateOnly">true</item>
    <item name="android:indeterminateBehavior">repeat</item>
    <item name="android:indeterminateDuration">3500</item>

    <item name="android:indeterminateOnly">false</item>
    <item name="android:indeterminateDrawable">@drawable/progress_indeterminate_horizontal_holo</item>

Und schließlich, setzte die mindesthöhe auf 4dp in meiner lokalen Layout-Datei.

2voto

Pork 'n' Bunny Punkte 6710

Kam auf eine weitere Lösung, da das Drawable im Screenshot wie beabsichtigt funktioniert. Einfach um 6dp nach oben schieben.

    mProgress = (ProgressBar) view.findViewById(R.id.fwv_progress);
    mProgress.animate().withLayer().yBy(-6.0f*getResources().getDisplayMetrics().density).setDuration(0).start();

-2voto

Raghuram Punkte 115

Ich denke, das Problem liegt am height Attribut. Versuchen Sie, die Höhe des Layouts auf einen Wert zu setzen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X