/ / ProgressBar nie w środku - Android

ProgressBar nie w środku - android

Mój kod obecnie wygląda tak

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">


<ProgressBar
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:id="@+id/progressBar" />

<WebView
android:layout_width="match_parent"
android:layout_height="518dp"
android:id="@+id/webview" />
</LinearLayout>

Mój pasek postępu jest wyśrodkowany tylko w poziomie, a nie w pionie.

Mogę go wyśrodkować na dwa sposoby, używając tego kodu

<ProgressBar
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_gravity="center"
android:id="@+id/progressBar" />

ale potem pasek postępu (lub raczej spinning) jest tak duży, jak to tylko możliwe, więc obejmuje cały ekran.

Jakiekolwiek rozwiązanie tego problemu, dzięki czemu mogę go wyśrodkować w normalnej wysokości i szerokości.

Odpowiedzi:

1 dla odpowiedzi № 1

Jeśli chcesz mieć swoje ProgressBar na środku ekranu i na górze WebView, musisz użyć a FrameLayout lub RelativeLayout, lubię to :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:layout_width="match_parent"
android:layout_height="518dp"
android:id="@+id/webview" />
<ProgressBar
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:id="@+id/progressBar" />
</RelativeLayout>

Zauważ, że zamówienie ma znaczenie. (ProgressBar po WebView)


1 dla odpowiedzi nr 2

Spróbuj zrobić to programowo:

ProgressDialog dialog = new ProgressDialog(activity);
dialog.setMessage("Loading...");
dialog.setCancelable(false);
dialog.show();

Zawsze programowałem i działałem dobrze (zgodnie z oczekiwaniami).