Я создал ProgressBar
программно, как показано ниже в моей работе. Как мне показать это?
progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);
Я создал ProgressBar
программно, как показано ниже в моей работе. Как мне показать это?
progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);
Вы можете попробовать этот код для добавления progressBar programaticlly к вашему расположению.
RelativeLayout layout = new RelativeLayout(this);
ProgressBar progressBar = new ProgressBar(YourActivity.this,null,android.R.attr.progressBarStyleLarge);
progressBar.setIndeterminate(true);
progressBar.setVisibility(View.VISIBLE);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(100,100);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
layout.addView(progressBar,params);
setContentView(layout);
Вы можете использовать в макете:
<RelativeLayout
android:id="@+id/rlLoading"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ad000000"
android:visibility="gone">
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/animation_view"
android:layout_width="@dimen/toolbar_height_70dp"
android:layout_height="@dimen/toolbar_height_70dp"
android:layout_centerHorizontal="true"
android:layout_centerInParent="true"
android:layout_marginTop="10dp"
app:lottie_autoPlay="true"
app:lottie_fileName="lottie/circle-l.json"
app:lottie_loop="true"
/>
</RelativeLayout>
и в классе Java:
rlLoading.setVisibility(View.VISIBLE); Utility.disableEnableControls(false,rlRoot);
public static void disableEnableControls(boolean enable, ViewGroup vg) {
for (int i = 0; i < vg.getChildCount(); i++) {
View child = vg.getChildAt(i);
child.setEnabled(enable);
if (child instanceof ViewGroup) {
disableEnableControls(enable, (ViewGroup) child);
}
}
}
progressBar
- виджет (вид). Вам нужно добавить в группу просмотра.
Вы можете использовать ProgressDialog для отображения загрузки процесса Пример:
ProgressDialog proDialog = ProgressDialog.show(this, "title", "message");
Каждое действие имеет вид содержимого. Это корневой вид вашей активности, который вы установили, вызвав setContentView()
. Каждое представление на экране должно быть дочерним элементом этого представления (или дочерним элементом дочернего элемента и т.д.). Исключением является диалог, который появляется в отдельном окне, но это другое обсуждение.
Если вы хотите, чтобы представление отображалось на экране, вы должны добавить его к некоторому ViewGroup
внутри вашего содержимого.
На самом деле обычный способ использования индикаторов выполнения загрузки отличается. Обычно вы добавляете его в свой xml, но вы устанавливаете его видимость на GONE
, чтобы он не отображался. Затем, когда вы хотите, чтобы он появился, вы установите его на VISIBLE
. Таким образом, похоже, что индикатор выполнения появляется, но его действительно там все время скрыто.
вы можете добавить progressBar в xml файл, подобный этому
<ProgressBar
android:id="@+id/pbProgress"
android:style="@style/Spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ProgressBar>
и видимым, невидимым это прагматично.
Этот способ добавить индикатор выполнения в ваш XML файл но если вы хотите добавить прагматично, вы можете использовать progressBar.setVisibility(View.Visible), чтобы показать индикатор выполнения, или вы можете использовать progressBar.setVisibility(View.Gone), чтобы скрыть индикатор выполнения активности.
ProgressBar prog = new ProgressBar(MainActivity.this);
linear1.addView(prog);
linear1 - это LinearLayout, а MainActivity - это ваша деятельность. Измените linear1 и MainActivity в соответствии с вашими потребностями.
Мой способ заключается в том, чтобы обернуть его внутри AlertDialog, вызвать диалог и использовать show(), hide() и некоторые связанные функции, когда вам это нужно. Поэтому вам не нужно устанавливать ProgressBar в основном файле макета XML, и вы можете вызывать его без программной настройки параметров макета.
В файле макета layout_pb.xml
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<ProgressBar
android:id="@+id/mProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ProgressBar>
<!--add other customize layout components you want-->
</LinearLayout>
В коде Java
AlertDialog progressDialog = new AlertDialog.Builder(this)
.setView(R.layout.layout_pb)
.setPositiveButton("CANCEL", cancel listener ...)
...
.show();
Сначала вам нужно импортировать пакет
import android.app.ProgressDialog;
затем используйте это,
ProgressDialog progressDialog;
progressDialog = new ProgressDialog(this);
progressDialog.setMessage("MESSAGE");
progressDialog.show();
........
//tour task
........
progressDialog.dismiss(); //dismiss progress bar