在前一个textview下添加另一个textview作为第二个textview

时间:2013-12-18 15:10:18

标签: java android

伙计我尝试添加另一个textview但是当我尝试将新的textview放在之前的textview上时,如何让第二个textview作为新的第二个文本视图下载

这是我的代码,希望你能帮助我

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip" >

<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:gravity="center_vertical"
android:text="@string/state1"
android:textSize="16sp" />


<TextView
android:id="@+id/secondLine"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_below="@id/textView1"
android:ellipsize="marquee"
android:singleLine="true"
android:text="@string/sayer1"
android:textSize="12sp" />


<TextView
android:id="@+id/thirdLine"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_below="@id/textView2"
android:ellipsize="marquee"
android:singleLine="true"
android:text="@string/sayer2"
android:textSize="12sp" />

<TextView
android:id="@+id/textView2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:gravity="center_vertical"
android:text="@string/state2"
android:textSize="16sp" />

</RelativeLayout>

3 个答案:

答案 0 :(得分:0)

简单地用LinearLayout包装那两个TextView并略微对齐一个位。

这将非常整洁,而不仅仅是在相对布局内定位。因为如果你想移动整个包装TextView将移动。所以你不必担心对齐每个TextView

<LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:baselineAligned="false"
            android:orientation="vertical" > 

<TextView
    android:id="@+id/textView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/state1"
    android:textSize="16sp" />


<TextView
    android:id="@+id/secondLine"
    android:layout_width="fill_parent"
    android:layout_height="26dip"
    android:layout_below="@id/textView1"
    android:ellipsize="marquee"
    android:singleLine="true"
    android:text="@string/sayer1"
    android:textSize="12sp" />


</LinearLayout>

答案 1 :(得分:0)

您应该只根据父对象调整一个TextView,而基于那个对齐。

或换句话说,如果您没有设置布局_ 参数,则应将其与父对齐,以便视图知道自己的位置。现在,其他视图可以对具有 alignParent 参数的视图使用 layout _ 参数。

如果你将所有这些对齐父对象,它们只会保持父母的记忆,而不是打扰其他TextViews。

我喜欢想象他们认为与父母对齐的是一种“锚”,而其他人则认为自己与之对抗。

请尝试以下操作(我删除了可读性的其他参数,不是因为您应该删除它们!)

<TextView
android:id="@+id/textView1"
android:layout_alignParentLeft="true" />

<TextView
android:id="@+id/secondLine"
android:layout_below="@id/textView1" />
//If You set it below, there's no reason to align it with the Parent
// you can now use margins instead

<TextView
android:id="@+id/thirdLine"
android:layout_below="@id/textView2" />
//Same scenario

<TextView
android:id="@+id/textView2"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"  />
//In this case you DO need to align with parent because you are not setting a 
//layout_ parameter

我希望这有助于指导您朝着正确的方向前进。另外,请注意,如果使用 alignParent 参数更改视图上的值,则具有布局_ 参数的其他视图也会更改位置。

答案 2 :(得分:0)

将您的xml文件更改为以下内容。它可能对你有帮助

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:orientation="vertical"
    android:padding="6dip" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:text="@string/state1"
        android:textSize="16sp" />


    <TextView
        android:id="@+id/secondLine"
        android:layout_width="fill_parent"
        android:layout_height="26dip"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:text="@string/sayer1"
        android:textSize="12sp" />


    <TextView
        android:id="@+id/thirdLine"
        android:layout_width="fill_parent"
        android:layout_height="26dip"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:text="@string/sayer2"
        android:textSize="12sp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:text="@string/state2"
        android:textSize="16sp" />

</LinearLayout>