textview中的Android文本对齐是错误的

时间:2014-08-08 09:54:24

标签: android xml textview

我尝试将textview中的文本与中心(垂直和水平)对齐。 垂直对齐在Android Studio预览中正确运行,它在模拟器上失败。

设计:

enter image description here

android studio预览:

enter image description here

模拟器:

enter image description here

代码:

<RelativeLayout
    android:id="@+id/teamsBox"
    android:layout_width="match_parent"
    android:layout_height="185dp">

    <LinearLayout
        android:layout_width="154dp"
        android:layout_height="wrap_content"
        android:background="@drawable/team_bg"
        android:padding="6dp"
        android:layout_alignParentLeft="true"
        android:orientation="vertical">

        <EditText
            android:id="@+id/teamOneName"
            android:layout_width="143dp"
            android:layout_height="42dp"
            android:text="HOME"
            android:textColor="@color/my_white"
            android:background="@color/my_transparent"
            android:textSize="23sp"
            android:singleLine="true"
            android:gravity="center"/>

        <TextView
            android:id="@+id/teamOneScore"
            android:layout_width="143dp"
            android:layout_height="132dp"
            android:text="3"
            android:textColor="@color/my_green"
            android:textSize="127sp"
            android:gravity="center"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="154dp"
        android:layout_height="match_parent"
        android:background="@drawable/team_bg"
        android:padding="6dp"
        android:layout_alignParentRight="true"
        android:orientation="vertical">

        <EditText
            android:id="@+id/teamTwoName"
            android:layout_width="match_parent"
            android:layout_height="42dp"
            android:text="AWAY"
            android:textColor="@color/my_white"
            android:background="@color/my_transparent"
            android:textSize="23sp"
            android:singleLine="true"
            android:gravity="center"/>

        <TextView
            android:id="@+id/teamTwoScore"
            android:layout_width="fill_parent"
            android:layout_height="132dp"
            android:text="1"
            android:textColor="@color/my_green"
            android:textSize="127sp"
            android:gravity="center"
            android:layout_gravity="center"/>

    </LinearLayout>

</RelativeLayout>

编辑:我已根据答案更改为布局,但错误仍在发生。 这是我的新布局:

<RelativeLayout
    android:id="@+id/teamsBox"
    android:layout_width="match_parent"
    android:layout_height="185dp">

    <LinearLayout
        android:layout_width="154dp"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:background="@drawable/team_bg"
        android:orientation="vertical"
        android:padding="6dp" >

        <EditText
            android:id="@+id/teamOneName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="HOME"
            android:textColor="@color/my_white"
            android:background="@color/my_transparent"
            android:textSize="23sp"
            android:singleLine="true"
            android:padding="8dp"
            android:gravity="center"/>

        <TextView
            android:id="@+id/teamOneScore"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:text="3"
            android:textColor="@color/my_green"
            android:textSize="127sp"
            android:gravity="center_vertical|center_horizontal"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="154dp"
        android:layout_height="match_parent"
        android:background="@drawable/team_bg"
        android:padding="6dp"
        android:layout_alignParentRight="true"
        android:orientation="vertical">

        <EditText
            android:id="@+id/teamTwoName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="AWAY"
            android:textColor="@color/my_white"
            android:background="@color/my_transparent"
            android:textSize="23sp"
            android:singleLine="true"
            android:padding="8dp"
            android:gravity="center"/>

        <TextView
            android:id="@+id/teamTwoScore"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:text="1"
            android:textColor="@color/my_green"
            android:textSize="127sp"
            android:gravity="center"
            android:layout_gravity="center"/>

    </LinearLayout>

</RelativeLayout>

6 个答案:

答案 0 :(得分:8)

问题在于TextView本身,文本的大小不是由gravity属性计算的。

尝试将此属性添加到文本视图android:includeFontPadding =&#34; false&#34;

答案 1 :(得分:0)

将textView的android:gravity设置为center_vertical | center_horizontal

<TextView
     android:id="@+id/teamOneScore"
     android:layout_width="143dp"
     android:layout_height="132dp"
     android:text="3"
     android:textColor="@color/my_green"
     android:textSize="127sp"
     android:gravity="center_vertical | center_horizontal" />

答案 2 :(得分:0)

删除硬编码widthheight并使用weight。请尝试以下数据

<RelativeLayout
    android:id="@+id/teamsBox"
    android:layout_width="match_parent"
    android:layout_height="185dp" >

    <LinearLayout
        android:layout_width="154dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:background="@drawable/button_background"
        android:orientation="vertical"
        android:padding="6dp" >

        <EditText
            android:id="@+id/teamOneName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#123456"
            android:gravity="center"
            android:singleLine="true"
            android:text="HOME"
            android:textSize="23sp" />

        <TextView
            android:id="@+id/teamOneScore"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:gravity="center_vertical|center_horizontal"
            android:text="3"
            android:layout_weight="1"
            android:textSize="127sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="154dp"
        android:layout_height="match_parent"
        android:layout_alignParentRight="true"
        android:background="@drawable/button_background"
        android:orientation="vertical"
        android:padding="6dp" >

        <EditText
            android:id="@+id/teamTwoName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#123456"
            android:gravity="center"
            android:singleLine="true"
            android:text="AWAY"
            android:textSize="23sp" />

        <TextView
            android:id="@+id/teamTwoScore"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_gravity="center"
            android:gravity="center_vertical|center_horizontal"
            android:text="1"
            android:layout_weight="1"
            android:textSize="127sp" />
    </LinearLayout>
</RelativeLayout>

希望这有效

答案 3 :(得分:0)

试试这可能对你有帮助,

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/holo_green_light" >

    <LinearLayout
        android:layout_width="154dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:orientation="vertical"
        android:padding="6dp" >

        <EditText
            android:id="@+id/teamOneName"
            android:layout_width="143dp"
            android:layout_height="42dp"
            android:background="@android:color/holo_green_dark"
            android:gravity="center"
            android:singleLine="true"
            android:text="HOME"
            android:textColor="@android:color/white"
            android:textSize="23sp" />

        <TextView
            android:id="@+id/teamOneScore"
            android:layout_width="143dp"
            android:layout_height="132dp"
            android:gravity="center"
            android:text="3"
            android:background="@android:color/white"
            android:textSize="127sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="154dp"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:orientation="vertical"
        android:padding="6dp" >

        <EditText
            android:id="@+id/teamTwoName"
            android:layout_width="match_parent"
            android:layout_height="42dp"
            android:background="@android:color/holo_green_dark"
            android:gravity="center"
            android:singleLine="true"
            android:text="AWAY"
            android:textColor="@android:color/white"
            android:textSize="23sp" />

        <TextView
            android:id="@+id/teamTwoScore"
            android:layout_width="fill_parent"
            android:layout_height="132dp"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="1"
            android:background="@android:color/white"
            android:textSize="127sp" />
    </LinearLayout>

</RelativeLayout>

答案 4 :(得分:0)

具有编辑文本和一个文本视图高度的线性布局小于为其子项指定高度的线性布局。请计算编辑文本和文本视图的高度,并相应地调整线性布局的高度。

这里您只需要为文本视图提供wrap_content。

1. change in text view 

    android:layout_height="132dp"

To

    android:layout_height="wrap_content"

2. Increase you linear layout height to

    android:layout_width="184dp"

3. remove below pading tag from your linear layout

    android:padding="6dp"

它会解决您的问题。

答案 5 :(得分:0)

只需使用match_parent作为textview的高度。