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_parentmatch_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's重力属性设置为。center

编辑 1

将以下代码复制并粘贴到 xml 布局文件中,然后切换到Graphical Layout以查看layout_weight其中一个组件具有固定高度时的工作原理。因为,以下是LinearLayout带有vertical方向的,我已经为 分配0dp了高度,TextViews50dpImageView. 您将看到 TextView 的高度取决于它们各自的高度以及分配给 ImageViewlayout_weights后留下的空间。50dp

<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 回答
-1

嘿,只需将填充添加到您的文本视图。或将重心设为中心。没事的...!!确保你设置重力而不是 LayoutGravity

于 2013-07-26T18:20:20.267 回答