2012-04-05 15 views
1

Wie mache ich eine Leiste in Android, die mehrere Abschnitte hat? Ich habe versucht, eine ProgressBar, aber ich kann es nicht zum Laufen bringen und es klingt auch nicht eine korrekte Anwendung von ProgressBar. In HTML würde ich nur etwas wie:Wie mache ich einen horizontalen Balken mit mehreren Abschnitten darin?

<style> 
#bar { width: 100px; } 
.bar { height: 20px; } 
.black { background-color: black; } 
</style> 
<div id="bar"> 
    <div class="bar"  style="width: 15px;"></div> 
    <div class="bar black" style="width: 25%;"></div> 
    <div class="bar"  style="width: 5%;"></div> 
    <div class="bar black" style="width: 40%;"></div> 
    <div class="bar"  style="width: 15%;"></div> 
</div> 

Was das effiziente Äquivalent in Android?

bar

+0

Es kommt darauf an. Was wirst du damit machen? Tab-Navigation? nur Knöpfe? nur anzeigen? – Th0rndike

+0

Es repräsentiert einen Tag mit Übergängen von Schwarz zu Weiß (und zurück) zu bestimmten Zeiten. Es ist in einer Zeile enthalten, die anklickbar ist. – Lekensteyn

+0

dann ist die Antwort von Jave gerade gut :) – Th0rndike

Antwort

5

ein horizontales LinearLayout Gebrauch. Sie können die Ansichten darin erstellen und ihre relative Größe mit dem Attribut layout_weight festlegen. Hier

ist ein Beispiel, das das gewünschte Ergebnis liefert:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:weightSum="100" > 
    <View 
     android:layout_width="0px" 
     android:layout_height="match_parent" 
     android:layout_weight="15" 
     android:background="#FFFF" /> 
    <View 
     android:layout_width="0px" 
     android:layout_height="match_parent" 
     android:layout_weight="25" 
     android:background="#F000" /> 

    <View 
     android:layout_width="0px" 
     android:layout_height="match_parent" 
     android:layout_weight="5" 
     android:background="#FFFF" /> 

    <View 
     android:layout_width="0px" 
     android:layout_height="match_parent" 
     android:layout_weight="40" 
     android:background="#F000" /> 
    <View 
     android:layout_width="0px" 
     android:layout_height="match_parent" 
     android:layout_weight="15" 
     android:background="#FFFF" /> 
</LinearLayout> 

Beachten Sie, dass die Gewichte Schwimmer sind. Ich gebe nur ganze Zahlen und eine Summe von 100 ein, um Ihrem prozentualen Layout zu entsprechen.

+1

Danke für Ihre Antwort. Ich musste es in Java implementieren und entdeckte, dass LinearLayouts nicht leer oder unsichtbar sein können. Ich habe ein View-Objekt mit der Gewichtung 0 hinzugefügt und das Problem wurde behoben. – Lekensteyn

Verwandte Themen