Android - 随机文本的TextView对齐方式

时间:2014-04-01 11:44:14

标签: android textview text-justify

我正在开发一款应用。因为我从webservice获取数据,我将其插入TextView。但是,textview的对齐正在变得混乱。请检查图像。

前3行(黑色)按正确顺序排列,从4号开始乱码。我搜索了很多次,但没有得到我想要的确切解决方案。

enter image description here

XML代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="70dp"
android:orientation="horizontal"
>

     <TextView
        android:id="@+id/schedule_1_textView_day_date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="KKR"
        android:layout_weight="1.5"
        android:layout_marginTop="10dp"
        android:textColor="@color/Black"            
        android:textSize="7sp"
        />        

    <TextView
        android:id="@+id/schedule_1_textView_matchno"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="10"
        android:layout_weight="1.5"
        android:layout_marginTop="10dp"
        android:textColor="@color/Black"
        android:textSize="7sp"
        />        

    <TextView
        android:id="@+id/schedule_1_textView_time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_weight="1"
        android:text="6"
        android:textColor="@color/Black"
        android:textSize="7sp"
        />   

    <TextView
        android:id="@+id/schedule_1_textView_team1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_weight="1"
        android:text="4"
        android:textSize="7sp"
        android:textColor="@color/Black"
        />       

    <TextView
        android:id="@+id/schedule_1_textView_team2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="0"
        android:layout_weight="1"
        android:layout_marginTop="10dp"          
        android:textColor="@color/Black"
        android:textSize="7sp"
        />       

    <TextView
        android:id="@+id/schedule_1_textView_venue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="6"
        android:layout_marginTop="10dp"
        android:textColor="@color/Black"
        android:textSize="7sp"
        /> 

    <TextView
        android:id="@+id/schedule_1_textView_blank"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="B"
        android:layout_marginTop="20dp"
        android:textColor="@color/Black"
        android:textSize="6sp"
        android:visibility="invisible"
        /> 


 </LinearLayout>

5 个答案:

答案 0 :(得分:1)

您可能希望将android:layout_weight属性与TextView类似:

<TextView
    android:id="@+id/schedule_1_textView_venue"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="6"
    android:layout_marginTop="10dp"
    android:textColor="@color/Black"
    android:textSize="7sp" />

您需要根据自己的要求指定重量。即对于较大的视图,您希望分配更高的值。

[编辑] ,对于最后一次TextView,您可能需要为文字对齐设置android:layout_gravity="center|right"android:layout_gravity="center|left"强>其余的你应该使用android:layout_gravity="center"

答案 1 :(得分:1)

试试这个..

您忘了在android:layout_weight="1"下面添加TextView android:singleLine="true"使用TextView所有<TextView android:id="@+id/schedule_1_textView_venue" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:singleLine="true" android:text="6" android:layout_marginTop="10dp" android:textColor="@color/Black" android:textSize="7sp" /> <TextView android:id="@+id/schedule_1_textView_blank" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:singleLine="true" android:text="B" android:layout_marginTop="20dp" android:textColor="@color/Black" android:textSize="6sp" android:visibility="invisible" />

{{1}}

答案 2 :(得分:0)

将重力添加到TextView,例如:

android:gravity="center_vertical|center_horizontal"

根据需要将重力变为左,右或中心......

答案 3 :(得分:0)

您是否尝试过向schedule_1_textView_venue添加权重?

答案 4 :(得分:0)

这是一项工作,但你尝试使用TableLayout吗? This是非常有用的教程,可以帮助您组织正确的视图顺序。

编辑:我想我知道导致TextViews不匹配的原因。它来自您上一列名为 VENUE 的不同长度值。例如,值 HYDEBARAD DELHI - 第一个比第二个长得多,这使得行上的所有TextViews都向左移动。我相信如果您将相同的padding添加到TextViews,您将对齐它们。例如:将您的TextViews带到 MATCH 列并写下以下内容:myTextView.setPadding(40, 0, 0, 0)(左侧为padding)这将使它们完全成直线排列。对具有正确TextViews值的其余padding执行相同操作,考虑其他列中值的长度......但这有点棘手。 :)