Rumah > Soal Jawab > teks badan
使用Progress
控件很方便,但是如果有居中需求的话,某些场景会增加一层布局嵌套
而且每个布局都要书写,很麻烦
而使用ProgressDialog
书写起来很方便,但是某些场景不能很直接的提供正确的上下文.(容器不是activity
或 fragment
时)
各位大哥在实际开发中如何实现进度条的需求的?
//我尝试这样操作的情况,下 在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);
天蓬老师2017-04-18 09:18:17
Saya tidak boleh menawarkan sebarang cadangan yang membina mengenai perkara ini Kadang-kadang untuk menyelamatkan masalah, saya akan menulis antara muka xml untuk ProgressBar, mengembangnya apabila menggunakannya dan memasukkannya terus ke dalam rootView. Jika anda suka, letakkan ini dalam BaseActivity The logik terkandung dalam lapisan lain, supaya ia pada asasnya boleh memenuhi beberapa keperluan mudah.
Untuk menjadikannya lebih rumit, biarkan progressBar berinteraksi dengan operasi pengguna Contohnya, jika antara muka pengeditan mempunyai pintu masuk untuk memuat naik imej, kami boleh menukar kunci hantar ke Widget Kemajuan semasa pengguna menunggu untuk memuat naik. selepas memilih imej , yang bukan sahaja menghalang operasi pengguna tetapi juga mendorong kemajuan dengan berkesan.
Bagi ProgressDialog, saya rasa ia terlalu menyekat Kecuali dalam beberapa senario dengan susunan logik yang kukuh, seperti apabila fail tertentu mesti dimuatkan sebelum meneruskan ke langkah seterusnya, ini biasanya tidak disyorkan.
PHP中文网2017-04-18 09:18:17
Selagi anda boleh mendapatkan
Context
, maka teruskan menggunakanProgressDialog
Ambil Application
sebagai contoh:
Tulis Aktiviti sebagai proksi untuk pop timbul Dialog
startActivity(Intent)
天蓬老师2017-04-18 09:18:17
Saya sebenarnya lebih berminat dengan persoalan tentang jenis senario "konteks tidak disediakan dengan betul" dalam soalan itu. Apakah senario yang dihadapi oleh penyoal di mana progressbar
boleh mendapatkan konteks tetapi progressdialog
tidak dapat?
巴扎黑2017-04-18 09:18:17
Jika ia bukan aktiviti atau bekas serpihan, maka bekas itu mesti berada dalam aktiviti atau serpihan apabila ia dicipta
Jika ia tidak, maka bekas induk atau bekas induknya mestilah berada dalam aktiviti atau serpihan. .
Dalam kes ini, maka anda boleh melepasi tahap konteks demi tahap melalui pembina, bukan?