正如标题所述,我的情况下子视图是一个带有一些内容的
所以把
这是xml:
最终,我希望它们一个接一个地垂直排列(每行一个),水平大小为它们的文本长度(内容)。
使用线性布局是否可能实现这一点?
谢谢。
编辑: 正如@Ajil O的回答是有效的,我的问题仍然存在。我分离了主要区别。
在我的项目中,我使用Inflate从代码中添加TextViews,因为我有默认样式。
充气代码:
TextView
,我想让它每行一个。所以把
layout_width
设置为0dp
并添加layout_weight
1
无效,我认为是因为它是其行中唯一的一个,所以1
是最高权重...不确定。这是xml:
<LinearLayout
android:id="@+id/tagsVerticalLineup"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
android:gravity="center_horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
</LinearLayout>
最终,我希望它们一个接一个地垂直排列(每行一个),水平大小为它们的文本长度(内容)。
使用线性布局是否可能实现这一点?
谢谢。
编辑: 正如@Ajil O的回答是有效的,我的问题仍然存在。我分离了主要区别。
在我的项目中,我使用Inflate从代码中添加TextViews,因为我有默认样式。
充气代码:
final LinearLayout tagAreaView = (LinearLayout) findViewById(R.id.tagsVerticalLineup);
TextView tag = (TextView) getLayoutInflater().inflate(R.layout.answer_tag, null);
int tagId = someListArray.size();
tag.setId(tagId);
tag.setText(someChangingObject.text);
tagAreaView.addView(tag, tagId);
文本视图 answer_tag
:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/SelectedTagAnswer" />
<style name="SelectedTagAnswer">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginStart">8dp</item>
<item name="android:layout_marginEnd">16dp</item>
<item name="android:background">@drawable/selected_answer</item>
<item name="android:drawablePadding">8dp</item>
<item name="android:gravity">center_horizontal</item>
<item name="android:drawableStart">@drawable/ic_cross_round</item>
<item name="android:elevation">3dp</item>
<item name="android:paddingBottom">8dp</item>
<item name="android:paddingEnd">25dp</item>
<item name="android:paddingStart">15dp</item>
<item name="android:paddingTop">8dp</item>
</style>
注意:
在xml中插入一个使用相同样式的简单Text View
时,它的工作方式与@Ajil O的答案相同。在充气过程中有一些东西会搞砸它。