android - 开发中进度条的选择
ringa_lee
ringa_lee 2017-04-18 09:16:17
0
4
528

使用Progress控件很方便,但是如果有居中需求的话,某些场景会增加一层布局嵌套
而且每个布局都要书写,很麻烦

而使用ProgressDialog 书写起来很方便,但是某些场景不能很直接的提供正确的上下文.(容器不是activityfragment 时)

各位大哥在实际开发中如何实现进度条的需求的?

//我尝试这样操作的情况,下 在app第一次进入的时候,我点击按钮向容器上添加progressbar的时候,这个progressbar是不会旋转的,卡在界面上
//而关闭这个activity后(app中还有activity存在),再次进入activity 继续添加,这时候progressbar就会旋转了,这是为什么呢?
ProgressBar progressBar = new ProgressBar(this);
ViewGroup decorView = (ViewGroup) getWindow().getDecorView();
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER);
progressBar.setLayoutParams(layoutParams);
decorView.addView(progressBar);
ringa_lee
ringa_lee

ringa_lee

répondre à tous(4)
Peter_Zhu

Je ne peux proposer aucune suggestion constructive à ce sujet. Parfois, pour éviter des problèmes, j'écrirai une interface XML pour ProgressBar, la gonflerai lors de son utilisation et l'insérerai directement dans rootView. Si vous le souhaitez, mettez-la dans BaseActivity The. la logique est encapsulée dans une autre couche, de sorte qu'elle puisse répondre à quelques besoins simples.
Pour compliquer les choses, laissez la barre de progression interagir avec les opérations de l'utilisateur. Par exemple, si une interface d'édition dispose d'une entrée pour télécharger des images, nous pouvons modifier la clé de soumission du widget de progression pendant que l'utilisateur attend le téléchargement. après avoir sélectionné l'image, ce qui non seulement empêche l'opération de l'utilisateur, mais stimule également efficacement la progression.
Quant à ProgressDialog, je le trouve trop bloquant. Sauf dans certains scénarios avec un ordre logique fort, comme lorsque certains fichiers doivent être chargés avant de passer à l'étape suivante, cela n'est généralement pas recommandé.

Ty80

Tant que vous pouvez obtenir Context, continuez à utiliser ProgressDialog

Prenons Application comme exemple :

  1. Écrire une activité en tant que proxy pour la fenêtre contextuelle de dialogue

  2. startActivity(Intent)

Peter_Zhu

Je suis en fait plus intéressé par la question de savoir à quel type de scénario correspond le « contexte n'est pas fourni correctement » dans la question. Quels scénarios l’interrogateur a-t-il rencontré dans lesquels progressbar pouvait obtenir le contexte mais progressdialog ne le pouvait pas ?

巴扎黑

S'il ne s'agit pas d'un conteneur d'activité ou de fragment, alors le conteneur doit être dans l'activité ou le fragment lors de sa création.
Si ce n'est pas le cas, alors son conteneur parent ou son conteneur parent doit être dans l'activité ou le fragment. .
Dans ce cas, alors vous pouvez passer le contexte niveau par niveau via le constructeur, non ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal