我有一个水平线性布局,里面有多个文本视图。布局的宽度为fill_parent,高度为wrap_content。我的问题是,当文本视图长于我的设备允许的屏幕宽度时,它会将最后一个文本视图打到右边,而不是将其包装到一个新行(这是我想要的结果)。我认为拥有一个wrap_content的高度可以解决这个问题。
如果我的线性布局有多个文本视图,那么我可以做些什么呢?如果文本视图超出了父文字的宽度,它会包装文本视图吗?
以下是我布局的摘录:
<LinearLayout
android:id="@+id/linearLayout20"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="3dip" >
<TextView android:layout_height="wrap_content" android:textColor="@color/black" android:text="Car Info: " android:id="@+id/textView023" android:layout_width="wrap_content" android:textStyle="bold" android:textSize="@dimen/item_main_text_size"></TextView>
<TextView android:layout_height="wrap_content" android:textColor="@color/black" android:text="2005" android:id="@+id/autorental_item_caryear" android:layout_width="wrap_content" android:textSize="@dimen/item_main_text_size"></TextView>
<TextView android:layout_height="wrap_content" android:textColor="@color/black" android:paddingLeft="3dip" android:text="Chevy" android:id="@+id/autorental_item_carmake" android:layout_width="wrap_content" android:textSize="@dimen/item_main_text_size"></TextView>
<TextView android:layout_height="wrap_content" android:textColor="@color/black" android:paddingLeft="3dip" android:text="Rio" android:id="@+id/autorental_item_carmodel" android:layout_width="wrap_content" android:textSize="@dimen/item_main_text_size"></TextView>
<TextView android:layout_height="wrap_content" android:textColor="@color/black" android:paddingLeft="3dip" android:text="-" android:id="@+id/textView2" android:paddingRight="3dip" android:layout_width="wrap_content" android:textSize="@dimen/item_main_text_size"></TextView>
<TextView android:layout_height="wrap_content" android:textColor="@color/black" android:paddingLeft="3dip" android:text="Red" android:id="@+id/autorental_item_carcolor" android:layout_width="wrap_content" android:textSize="@dimen/item_main_text_size"></TextView>
</LinearLayout>
使用长文本视图,它会呈现如下内容:
Car Info: 2002 Chevrolet Silverado - Pu
rp
le
我希望它是这样的:
Car Info: 2002 Chevrolet Silverado -
Purple
答案 0 :(得分:3)
使用包含多个TextView(或其他东西,如按钮等)的LinearLayout无法获得所需的结果:
每个水平/垂直线性布局都为其子视图提供水平/垂直边界,其中每个孩子都可以自己做。因此,每个视图只能在不受限制的方向上扩展,在您的情况下是垂直的。
这是一个说明问题的示例。外部破折号代表屏幕边框。
| First Text- | Short text | Long text will take all the space possible | T |
| View with | | | e |
| additional | | | x |
| given | | | t |
| maximum | | | |
| width. Long | | | |
| text makes | | | |
| it expand | | | |
| down | | | |
您可以将所有文本放入单个文本视图中来解决此问题。然后,如果你想制作一个好的列表,你需要格式化你放在里面的字符串。
答案 1 :(得分:1)
使用LinearLayout
无法获得该结果。我认为在这种情况下最好的解决方案是使用具有多个样式的单个TextView
(如果您需要文本的动态值)。看看这里的见解:
Is it possible to have multiple styles inside a TextView?
如果您有静态文本,则可以在strings.xml中的CDATA块中包含符合html标准的值,并直接在布局中使用它。