我的申请屏幕(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>
答案 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>
<强>输出:强>
对于您的设计,最好使用一个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>
<强>输出:强>
希望这会有所帮助〜
答案 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>