数周以来,我一直在努力寻求解决方案,并将其列入我的备用清单,但我无法包装LinearLayout的高度。

我有一个简单的LinearLayout

<LinearLayout
android:id="@+id/tagsLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="left"
android:paddingRight="10dp"
android:paddingBottom="5dp"
android:padding="5dp"/>


然后,我将使用代码的多个TextViews添加到具有标签链接样式的LinearLayout

Txt.SetBackgroundResource(Resource.Drawable.roundtext);
Txt.SetPadding(30, 10, 30, 10);
Txt.SetTextColor(global::Android.Graphics.Color.ParseColor("#373944"));
Txt.SetTextSize(Android.Util.ComplexUnitType.Dip, 12);


结果如下
android - 包装LinearLayout的方法-LMLPHP

查看最后一个TextView永远不会转到下一行

我查找了很多线程和解决方案,结果发现LinearLayout无法包装这样的内容,相反,我将不得不创建自己的布局,例如FlowLayout

是否有解决此问题的简单方法?

最佳答案

您可以使用GridView代替LinearLayout

<GridView
    android:id="@+id/tagsLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:numColumns="auto_fit"
    android:horizontalSpacing="5dp"
    android:verticalSpacing="5dp"/>


这应该自动将TextView放在下一行。如果您想要更动态的东西,那么可以使用FlowLayout库或StaggeredLayout。签出这个SO声称它可以替代FlowLayout。

关于android - 包装LinearLayout的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50774746/

10-11 20:48
查看更多