2015-06-19 54 views
3

我有两个TextView并排显示。 TextView1具有不同长度的文本,而TextView2总是说“+#”。但是,当TextView1变长时,它会将TextView2推离屏幕。任何想法如何解决这一问题?这是我的布局代码:Long Android TextView将其他视图从屏幕上移开

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/TextView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:ellipsize="end" 
      android:textSize="13sp"/> 

     <TextView 
      android:id="@+id/TextView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:textSize="13sp"/> 

    </RelativeLayout> 
+0

你打算让父视图成为RelativeLayout还是LinearLayout?您正在指定android:orientation =“horizo​​ntal”,并且方向仅对LinearLayout有效。此外,如果你能澄清预期的行为,这将有所帮助。 –

回答

17

这其实是我一直试图解决现在一会儿。不幸的是,其他人建议的方法 - 在LinearLayout内部使用layout_weight - 实际上并不奏效;不过,我为你找到了一个解决方案!

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="left"> 

    <TextView 
     android:id="@+id/TextView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toLeftOf="@id/TextView2" 
     android:singleLine="true" 
     android:ellipsize="end" 
     android:textSize="13sp"/> 

    <TextView 
     android:id="@+id/TextView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:singleLine="true" 
     android:textSize="13sp"/> 
</RelativeLayout> 

利用上述块,我们为了将第一TextView对齐到第二TextView的左侧使用RelativeLayout。我们还将第二个TextView对齐到父节点ViewGroup的右侧。最后,我们将android:gravity="left"添加到父节点ViewGroup,以便将所有TextView排列在左侧。

这导致两个TextView并列 - 无论第一个TextView的长度。如果您希望第一个TextView有多行,只需删除android:ellipsize="end"标签即可。

希望这是您的预期结果!

+0

Perfecto !!非常感谢,这正是我所需要的! – Cameron

+0

NP!很高兴工作:D –

+1

有史以来最佳答案!我正在寻找这个两个小时:) – TrueCurry

0

使用的LinearLayout与孩子体重attributs意见

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

     <TextView 
      android:id="@+id/TextView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:ellipsize="end" 
      android:textSize="13sp" 
      android:layout_weight="1"/> 

     <TextView 
      android:id="@+id/TextView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:textSize="13sp" 
      android:layout_weight="0"/> 

    </LinearLayout>