我有一个线性布局,并且必须在此Linearlayout中在运行时向可变数量的按钮充气。现在我的问题是,当我给这个线性布局的Orientation。如果我给它水平或垂直,这会产生问题。将用例子解释它: -
Eg1:输入是3个按钮
预期输出:Button1 Button2 Button3(如果所有3完全匹配在一行中)
如果它们完全适合,所有3个按钮都应该以这种线性布局显示在同一条线上(就像水平一样)。
Eg2:输入是4个按钮,它们不能适合整行
预期产量: - 第1行: - Button1 Button2(假设Button3不完全适合此行)
Line2:- Button3 Button4
目前,如果我将LinearLAyout的方向设置为Horizontal,那么它会强制一行中的所有4个按钮,并且UI会被搞砸。如果我将方向定为垂直方向,也是如此。
有人可以告诉我如何在运行时处理这个问题,以便只有完整的按钮显示在一行中并且它分布在多行上。处理这种情况的一些通用方法。
出于静态目的,布局可以被认为是这样的: -
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal">
<Button
android:id="@+id/button_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="YYYYYYYYYYYOOOOOOOOOOOOO"
android:textSize="75sp"/>
<Button
android:id="@+id/button_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AAAAAAFFFFFFFFFFGGGGGGGGG"
android:textSize="75sp"/>
</LinearLayout>
答案 0 :(得分:0)
我的理解是您需要动态加载n个视图,并且希望您的视图在父视图中自动传输。我认为你需要的只是一个带有简单适配器的gridview。 gridview的“单元格”将是您案例中的按钮。有很多关于它的信息。这是谷歌提供的简单指南。
http://developer.android.com/guide/topics/ui/layout/gridview.html
希望我帮助你。 问候。答案 1 :(得分:0)
LinearLayout无法正常工作。它将垂直或水平布置项目(它不会换行)。你有几个选择。
听起来你的按钮尺寸会有所不同(所以你可能不想使用gridview),你可以创建包含多个HorizontalLinearLayouts(它依次保持Button)的Vertical LinearLayout。
或者,您可以滚动自己的自定义ViewGroup。这两种方法都要求您编写计算逻辑以确定哪一行适合。您的自定义视图组最终可能会更清晰,但需要更多有关视图的知识。