2017-10-06 1 views
-2

Ich habe ein TabWidget mit einigen Fragment drin. Ich möchte eine ProgressBar darin anzeigen, aber die ProgressBar wird nie angezeigt. Hier ist mein Code:ProgressBar Programmatisch in Fragment

private ProgressBar progressBar; 

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.roomstatusadmin_activity, container, false); 

    progressBar = new ProgressBar(getActivity().getApplicationContext(), null, android.R.attr.progressBarStyleSmall); 
    progressBar.setIndeterminate(true); 
    progressBar.setVisibility(View.VISIBLE); 
    //FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
    //layoutParams.gravity = Gravity.CENTER; 
    RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT); 
    layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT); 
    progressBar.setLayoutParams(layoutParams); 

    return view; 
} 

las ich einige Frage, aber es gibt keine Lösung, wie this. Ich teste mit Hinzufügen der ProgressBar in meine layout.xml und die ProgressBar wird angezeigt. Aber ich werde diese ProgressBar in irgendeinem Layout verwenden, also brauche ich es wirklich programmatisch. Danke im Voraus.

+0

Entfernen 'getApplicationContext()' –

Antwort

1

Sie sind ein progressbar Erstellen und nicht auf den view.To Befestigung befestigen, dass an Die Fragement View findet die ID des übergeordneten Layouts des Foggments.

YOURPARENTLAYOUT layout=(YOURPARENTLAYOUT)view.findViewById(R.id.yourParentLayout) 

Und das am Ende des übergeordneten Layout hinzufügen nach dem Erstellen progressbar

layout.addView(progressBar); 
+0

Oh, ich verstehe. Seine Show jetzt dank –

+0

Ihre herzlichsten :) – Anonymous

+0

Wie man es horizontal und vertikal zentrieren? –

2

Sie haben die Fortschrittsleiste nicht zum Layout des Fragments hinzugefügt.
Füllen Sie das Layout-XML auf und werfen Sie es in seine Stammansicht. Wenn Ihre Root-Ansicht ein RelativeLayout ist, dann gilt:
RelativeLayout view = (RelativeLayout)inflater.inflate(R.layout.roomstatusadmin_activity, container, false);

nun die progressbar das Layout hinzufügen:
view.addView(progressBar);

+0

sind Sie sicher? Ich denke, eine 'Ansicht' ist ein Typ' View' und hat keine 'addView'. Aber der Container hat 'addView', funktioniert aber auch nicht. Aber ich werde versuchen, danke für die Antwort –

+0

Die 'Ansicht' in meiner Antwort ist eine' RelativeLayout', die eine 'ViewGroup' ist, die eine' addView (View v) 'Methode enthält. – Neeraj

+0

Ich denke, da ist Missverständnis. In Bezug auf meinen obigen Code ist 'view' eine' View' und du gibst mir die 'view' mit' Layout' Typ. Deine Antwort funktioniert auch für mich Danke –