<分区>
如标题所示,在我的例子中, subview 是一个包含一些内容的 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
从代码中添加了 Text View
,因为我有默认样式。
膨胀代码:
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);
TextView answer_tag
:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/SelectedTagAnswer" />
样式 xml 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>
注意:
当插入一个简单的 Text View
到使用相同样式的 xml 时,
它像@Ajil O 的回答一样工作。膨胀过程中的某些东西搞砸了。