我试图让ProgressBar和TextView在ViewSwitcher中居中。它们可以垂直放置在彼此之上,但如果它们彼此水平居中,则没有问题。我可以让它们水平居中但不垂直居中。看起来外部视图(ViewSwitcher)的高度不会垂直填充,尽管每个父视图都有android:layout_height =“fill_parent”
这是xml:
<ViewSwitcher
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/loadSwitcher"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:background="#ff000000">
<ProgressBar
android:indeterminate="true"
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/marker_progress"
style="?android:attr/progressBarStyle"
android:gravity="center_vertical" />
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="18sp"
android:text="Loading data..."
android:gravity="center" />
</LinearLayout>
<ListView
android:id="@+id/android:appCategoriesList"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff918e8e"
android:divider="#ff000000"
android:dividerHeight="1dp"
android:cacheColorHint="#00000000"
android:scrollingCache="true"
android:clickable="false"
android:focusable="false" />
</ViewSwitcher>
答案 0 :(得分:2)
将LinearLayout
的身高设置为wrap_content
,并将其垂直居中。另外,您应在android:layout_gravity="center"
上添加LinearLayout
,将其置于ViewSwitcher
答案 1 :(得分:1)
使用以下代码:
<?xml version="1.0" encoding="utf-8"?>
<ViewSwitcher
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/loadSwitcher"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:background="#ff000000">
<ProgressBar
android:indeterminate="true"
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/marker_progress"
style="?android:attr/progressBarStyle"
android:layout_gravity="center"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:text="Loading data..."
/>
</LinearLayout>
<ListView
android:id="@+id/android:appCategoriesList"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff918e8e"
android:divider="#ff000000"
android:dividerHeight="1dp"
android:cacheColorHint="#00000000"
android:scrollingCache="true"
android:clickable="false"
android:focusable="false" />
</ViewSwitcher>