我尝试将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 -->
屏幕:
答案 0 :(得分:2)
这是因为您已将TextView
宽度设置为fill_parent
。 TextView
现在是布局的全宽,因此从技术上讲它是居中的。将其更改为wrap_content
或将TextView
重力设置为center
。
答案 1 :(得分: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's
重力属性设置为center
。
修改1 :
将以下代码复制并粘贴到xml布局文件中,并切换到Graphical Layout
以查看其中一个组件具有固定高度时layout_weight
如何工作。由于以下为LinearLayout
vertical
方向,因此我已将0dp
指定为TextViews
的高度,并将50dp
的固定高度设置为ImageView
layout_weights
。您将看到TextView的高度取决于它们各自的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>
分配给ImageView后剩余的空间。
{{1}}
答案 2 :(得分:1)
将android:gravity="center"
添加到您的TextView
答案 3 :(得分:-1)
嘿,只需在文本视图中添加填充。 或将重力设为中心。没事的...!! 确保你设置重力而不是LayoutGravity