-3

このレイアウト:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:orientation="vertical" >

<TextView
    android:id="@+id/main_tv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:keepScreenOn="true"
    android:text="@string/hello"
    android:textAppearance="@android:style/TextAppearance.Large"
    android:textColor="#0000ff" />

<ProgressBar
    android:id="@+id/main_progressBar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical" />

</LinearLayout>

textView は水平方向に中央揃えされていますが、ProgressBar が垂直方向に中央揃えされていないのはなぜですか?

ps。相対レイアウトを使用してこれを行うことができることを知っています。しかし、Linear を使用して動作しない理由がわかりません。ps2. なぜ反対票を投じるのか、それは完全に正当な質問ですか?

4

3 に答える 3

0
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:orientation="vertical" >

<TextView
    android:id="@+id/main_tv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_gravity="center_horizontal"
    android:keepScreenOn="true"
    android:text="@string/hello"
    android:textAppearance="@android:style/TextAppearance.Large"
    android:textColor="#0000ff" />

<ProgressBar
    android:id="@+id/main_progressBar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true" />

</RelativeLayout>
于 2012-05-03T07:42:27.493 に答える
0
<ProgressBar
    android:id="@+id/main_progressBar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical" />

上記のものを試してください

于 2012-05-03T07:41:03.677 に答える
0

まず、これは非常に古い質問だと思いますが、これを調べている人はこれが役立つと思うかもしれません。

あなたの正確な例がうまくいかない理由は完全にはわかりません。プログレスバーに追加の LinearLayout を追加すると機能することはわかっています。そのようです:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/main_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:keepScreenOn="true"
        android:text="@string/hello"
        android:textAppearance="@android:style/TextAppearance.Large"
        android:textColor="#0000ff" />
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <ProgressBar
            android:id="@+id/main_progressBar"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" />
    </LinearLayout>

</LinearLayout>
于 2014-12-23T19:06:56.687 に答える