2010-08-14 76 views
2

我有一个View由两个TextView组成,如果第一个太宽,我可以在第二行显示第二个?Android布局 - 文字太宽?

有没有解决方案?

<LinearLayout android:orientation="horizontal" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<TextView android:text="If this text is too wide" 
android:textSize="20px" 
android:textStyle="bold" 
android:id="@+id/del01" 
android:paddingTop="3px" 
android:paddingBottom="3px" 
android:gravity="left" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" /> 

<TextView android:text="I want this on a different line" 
android:id="@+id/del02" 
android:gravity="center_horizontal" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"/> 

</LinearLayout> 
+0

是否必须拥有两个TextView?为什么不使用它并将其限制为两行? – Asahi 2010-08-14 14:10:41

+0

我会认为这是因为他希望包装表现得如何;如果它是一个单独的TextView,那么它将在极限处包装,但他希望它包装在文本的每个部分。 – 2010-08-14 14:16:30

+0

优秀的问题。我一直在尝试几分钟,但无法做到这一点:( – Macarse 2010-08-14 14:32:34

回答

1

创建自己的视图类派生自视图并显示在该视图中的两个文本。覆盖draw(),你可以根据文本的大小做任何你想做的事情。

注意:在“px”中定义大小和填充通常不是一个好主意。你应该使用“dp”,它会自动缩放不同的屏幕尺寸和密度。

+0

知道了!!!! 有两个视图v2a和v2b v1.measure(v1.getWidth(),v1.getHeight()); v2a.measure( v2a.getWidth(),v2a.getHeight()); if(lv.getWidth()<(v1.getMeasuredWidth()+ v2a.getMeasuredWidth())) //太大 v2a.setVisibility(View.GONE);其他 v2b.setVisibility(View.GONE); 感谢您的想法 Steve – 2010-08-15 08:19:46