0

refresh記号とテキストを中央に配置しようとしています。

ただし、テキストは右揃えです。

何故ですか?

XML

<RelativeLayout
    android:id="@+id/layout_status_image"
    android:layout_width="82dp"
    android:layout_height="fill_parent"
    android:layout_gravity="center_vertical"
    android:layout_weight=".2"
    android:gravity="center_vertical"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/image_status"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="9dp"
        android:src="@drawable/widget_icon_no_data"
        android:visibility="invisible" />

    <!--
  Layout is necessary because the setVisibility of ProgressBar is not working 
  through remote views in 2.1. So wrapped by this layout 
    -->

    <FrameLayout
        android:id="@+android:id/widget_progress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginLeft="1dp"
        android:layout_marginTop="1dp" >

        <ProgressBar
            style="?android:attr/progressBarStyle"
            android:layout_width="39dp"
            android:layout_height="39dp"
            android:indeterminateOnly="true"
            android:orientation="vertical" />
    </FrameLayout>
</RelativeLayout> <!-- Status image layout -->


<!--
========================================================================
* Information layout - contains all the texts 
========================================================================
-->

<LinearLayout
    android:id="@+id/layout_information"
    android:layout_width="190dp"
    android:layout_height="fill_parent"
    android:layout_weight=".6"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text_view_destination"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="8dp"
        android:text="\@ Home in"
        android:textColor="@color/solid_white"
        android:textSize="19sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/text_view_time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        android:paddingLeft="9dp"
        android:textColor="@color/solid_white"
        android:textSize="25sp"
        android:textStyle="normal" />
</LinearLayout> <!-- Information layout -->


<!--
========================================================================
* Action layout - action buttons container
========================================================================
-->

<LinearLayout
    android:id="@+id/layout_action"
    android:layout_width="80dp"
    android:layout_height="fill_parent"
    android:layout_gravity="center"
    android:layout_weight=".2"
    android:gravity="center"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/image_action"
        android:layout_width="wrap_content"
        android:layout_height="wrap_contenth"
        android:src="@drawable/widget_bt_drive_disabled" />

    <TextView
        android:id="@+id/h"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="6dp"
        android:text="Refresh"
        android:textColor="@color/disabled_white"
        android:textSize="15sp"
        android:textStyle="bold" />
</LinearLayout> <!-- Action layout -->

画面:

ここに画像の説明を入力

4

4 に答える 4

2

TextView幅を に設定したためですfill_parent。はTextViewレイアウトの全幅になり、技術的には中央に配置されます。に変更するwrap_contentか、TextView重力も に設定centerします。

于 2013-07-26T18:11:00.943 に答える
1

TextView's幅がfill_parent(match_parent代わりに使用) に設定されているため、重力TextView'sをに設定centerするとこれが修正されます。これを試して:

<LinearLayout
    android:id="@+id/layout_action"
    android:layout_width="80dp"
    android:layout_height="fill_parent"
    android:layout_gravity="center"
    android:gravity="center"                     <-- Added
    android:orientation="vertical"
    android:layout_weight=".2" >



    <ImageView
        android:id="@+id/image_action"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/deletelight1" />



    <TextView
        android:id="@+id/h"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="6dp"
        android:text="Refresh"
        android:gravity="center"
        android:textColor="@color/black"
        android:textSize="15sp"
        android:textStyle="bold" />
</LinearLayout>

TextView's layout_widthを に変更することで、これを修正することもできますwrap_content。この場合、TextView'sgravity 属性をに設定するcenter必要はありません。

編集1

次のコードを xml レイアウト ファイルにコピー アンド ペーストし、 に切り替えて、いずれかのコンポーネントの高さが固定されている場合の動作Graphical Layoutを確認します。layout_weight以下はLinearLayoutwithの向きなので、 の高さにvertical割り当て、 に固定の高さを設定しました。TextView の高さは、それぞれの高さと、ImageViewに割り当てた後に残されたスペースに依存することがわかります。0dpTextViews50dpImageViewlayout_weights50dp

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_action"
    android:layout_width="80dp"
    android:layout_height="fill_parent"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/image_action"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:src="@drawable/widget_bt_drive_disabled" />



    <TextView
        android:id="@+id/h1"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_marginTop="6dp"
        android:text="Refresh 50"
        android:textColor="@color/disabled_white"
        android:textSize="15sp"
        android:textStyle="bold"
        android:layout_weight="50" />
    <TextView
        android:id="@+id/h2"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_marginTop="6dp"
        android:text="Refresh 25"
        android:textColor="@color/disabled_white"
        android:textSize="15sp"
        android:layout_weight="25"
        android:textStyle="bold" />
    <TextView
        android:id="@+id/h3"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_marginTop="6dp"
        android:text="Refresh 10"
        android:textColor="@color/disabled_white"
        android:textSize="15sp"
        android:layout_weight="10"
        android:textStyle="bold" />
    <TextView
        android:id="@+id/h4"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_marginTop="6dp"
        android:text="Refresh 15"
        android:textColor="@color/disabled_white"
        android:textSize="15sp"
        android:textStyle="bold"
        android:layout_weight="15" />
</LinearLayout>
于 2013-07-26T18:09:35.550 に答える
1

android:gravity="center"あなたに追加TextView

于 2013-07-26T18:10:34.150 に答える