Meine Anwendung muss programmgesteuert eine kleine progressBar erstellen. ProgressBar hat keine Methode, um den Stil festzulegen (Ich möchte eine kleine progressBar). Der Konstruktor kann ein AttributeSet übernehmen, jedoch ist es eine Schnittstelle und erfordert, dass ich eine Reihe von Funktionen implementiere. Gibt es einen Weg , um die progressBar kleinen Stil zu setzen? (Ich kann nicht xml verwenden progressBar erstellen)Wie programmgesteuert eine ProgressBar erstellen?
Antwort
Die meiste Zeit, wenn Sie eine AttributeSet
manuell zur Verfügung stellen, müssen Sie eines von Android verwenden. Glücklicherweise haben sie das Attributset offengelegt, das eine kleine Fortschrittsleiste beschreibt. Verwenden Sie diesen Code:
progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);
erstellen Layout XML-Datei in res/Layout-Verzeichnis mit den gewünschten Fortschrittsbalken containig alle Attribute, die Sie brauchen:
<?xml version="1.0" encoding="utf-8"?>
<ProgressBar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" ... />
Nächste in der Aktivitätsklasse können Sie ProgressBar Objekt von diesem Layout erstellen:
LayoutInflater inflater = getLayoutInflater();
ProgressBar bar = (ProgressBar) inflater.inflate(R.layout.small_progress_bar, null);
wo R.layout.small_progress_bar Links zu Ihrem Layout xML-Datei.
Können Sie immer noch nicht XML-Datei verwenden?
er sagte programmgesteuert. –
Anstatt manuell zu inflationieren, können Sie Ihre Inhaltsansicht auf diese Fortschrittsleiste setzen und das Layout ändern, sobald Ihre Daten geladen sind. – amalBit
Voll Code für das Hinzufügen von Fortschrittsbalken programmatisch
private ProgressDialog mProgressDialog;
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("Signing........");
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgressDialog.setCancelable(false);
Anruf unter Methode Leiste anzeigen
mProgressDialog.show();
Anruf unter der Stange zu verstecken
mProgressDialog.dismiss();
Während dies ähnlich ist, ist dies ein ProgressDialog, keine ProgressBar. Das OP möchte möglicherweise keinen Dialog für seine Fortschrittsanzeige. – Parker
Dieser ProgressDialog ist jetzt in Android 26 veraltet –
Dadurch sieht der Fortschrittsbalken statt des dünnen blauen (neuen) Balkens gelb und alt aus. –
@kilaka nur für zukünftige Referenz, ändern Sie die android.R.attr.progressBarStyleSmall zu android.R.attr.progressBarStyleHorizontal für die neue :) – ElaGorilaki
@BabyGorilla Und funktioniert progressBarStyleHorizontal auf allen Android-Version ?! –