将2个textviews水平对齐android

时间:2017-04-25 15:58:12

标签: android layout android-linearlayout text-alignment

我的申请屏幕(https://i.stack.imgur.com/xFozp.png

如图所示,我将文本视图水平对齐。当产品名称较长时,名称将在textview中以2行显示。 但是当textview中的行数增加时,两个textview的起始行不会水平对齐。 我希望textviews的起始行水平对齐。 目前我正在使用LINEAR LAYOUT。我应该改变布局吗?任何人都可以给代码写。 因此,即使2个文本视图彼此相邻(如图中所示),它们的起始(第一行)也应该在同一水平线上。

我的代码如下 -

<?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="match_parent"
    android:layout_margin="10dp"
    android:background="@drawable/b22"
    android:gravity="center|left"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:text="TextView"
        android:textColor="@android:color/black"
        android:textSize="15dp"
        android:maxLines="3"  />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right|center"
        android:text="TextView"
        android:textColor="@android:color/black"
        android:maxLines="3"  />

</LinearLayout>

2 个答案:

答案 0 :(得分:1)

1。android:gravity="center|left"删除属性LinearLayout

2。android:layout_gravity="right|center"移除属性textView2并将其宽度更改为android:layout_width="match_parent"

试试这个:

<?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="wrap_content"
    android:layout_margin="10dp"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:text="Product Name -"
        android:textColor="@android:color/black"
        android:textSize="15dp"
        android:maxLines="3"  />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="This is Liberty Agile Pension Preserver Product"
        android:textColor="@android:color/black"
        android:maxLines="3"  />

</LinearLayout>

<强>输出:

enter image description here

对于您的设计,最好使用一个RelativeLayout并将所有TextViews放入其中。

以下是一个例子:

<?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:layout_margin="10dp" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:text="Product Name -"
        android:textColor="@android:color/black"
        android:textSize="15dp"
        android:maxLines="3"  />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/textView1"
        android:layout_alignTop="@id/textView1"
        android:text="This is Liberty Agile Pension Preserver Product"
        android:textColor="@android:color/black"
        android:maxLines="3"  />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView2"
        android:layout_marginTop="20dp"
        android:layout_marginRight="10dp"
        android:text="Number of Senarios Executed -"
        android:textColor="@android:color/black"
        android:textSize="15dp"
        android:maxLines="3"  />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/textView3"
        android:layout_alignTop="@id/textView3"
        android:text="400"
        android:textColor="@android:color/black"
        android:maxLines="3"  />

</RelativeLayout>

<强>输出:

enter image description here

希望这会有所帮助〜

答案 1 :(得分:0)

考虑将LinearLayout用于包含TextViews的两个weightSum组。从总和中给予他们两个体重。以下是一个例子

<LinearLayout
  android:id="@+id/text_layout"
  android:orientation="horizontal"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_marginRight="15dp"
  android:layout_marginLeft="15dp"
  android:layout_marginTop="5dp"
  android:weightSum="2"
  android:background="@android:color/white">

  <TextView
    android:id="@+id/tvProductNameLabel"
    android:layout_width="0dp"
    android:layout_weight="0.6"
    android:layout_height="wrap_content"
    android:text="Product Name"
    android:gravity="right"
    android:textSize="14sp"
    android:layout_marginRight="10dp"/>

  <TextView
    android:id="@+id/tvProductName"
    android:layout_width="0dp"
    android:layout_weight="1.4"
    android:textSize="14sp"
    android:textColor="@android:color/black"
    android:layout_height="wrap_content"
    android:text=""
    android:layout_marginLeft="10dp"
    android:layout_gravity="left"/>
 </LinearLayout>