gpt4 book ai didi

android - 如何让水平 Linear Layout Child 包裹其内容?

转载 作者:搜寻专家 更新时间:2023-11-01 09:31:10 24 4
gpt4 key购买 nike

<分区>

如标题所示,在我的例子中, 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 的回答一样工作。膨胀过程中的某些东西搞砸了。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com