2017-10-06 5 views
-2

J'ai un TabWidget avec des fragments. Je veux montrer un ProgressBar à l'intérieur, mais le ProgressBar ne s'affiche jamais. Voici mon code:ProgressBar Programaticaly 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; 
} 

Je lis une question, mais il n'y a pas de solution, comme this. Je teste avec ajouter le ProgressBar dans mon layout.xml et le ProgressBar est show. Mais j'aurai utilisé ce ProgressBar dans une mise en page donc j'en ai vraiment besoin programmatiquement. Merci d'avance.

+0

Supprimer 'getApplicationContext()' –

Répondre

1

Vous créez une barre de progression et ne pas attacher à la view.To attacher à ce la vue de frgament trouve l'id de la disposition parentale du fargement.

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

Et d'ajouter que la mise en page de parent à la fin après la création progressbar

layout.addView(progressBar); 
+0

Oh je vois. Son spectacle maintenant merci –

+0

Votre bienvenu :) – Anonymous

+0

Comment le faire centre horizontal et vertical? –

2

Vous n'avez pas ajouté la barre de progression à la disposition du fragment.
Gonflez votre fichier XML de présentation et convertissez-le en vue racine. Si votre vue racine est un RelativeLayout, puis:
RelativeLayout view = (RelativeLayout)inflater.inflate(R.layout.roomstatusadmin_activity, container, false);

ajouter maintenant la barre de progression à la mise en page:
view.addView(progressBar);

+0

êtes-vous sûr? Je pense qu'un 'view' est un type' View' et il n'a pas 'addView'. Mais le 'container' a' addView' mais il ne fonctionne toujours pas. Mais je vais essayer de vous remercier pour la réponse –

+0

La 'vue' dans ma réponse est un' RelativeLayout', qui est un 'ViewGroup', qui contient une méthode' addView (View v) '. – Neeraj

+0

Je pense qu'il y a malentendu. En ce qui concerne mon code ci-dessus, 'view' est un' View' et vous me donnez la réponse 'view' avec le type' Layout'. Votre réponse fonctionne pour moi aussi merci –