1

我有一个线性布局,并且必须在运行时在此线性布局中填充可变数量的按钮。现在我的问题是,当我为这个线性布局提供方向时。如果我给它水平或垂直这会产生问题。将举例说明:-

eg1:输入是3个按钮

预期输出: Button1 Button2 Button3 (如果所有 3 个完全适合一行)

所有 3 个按钮都应显示在此线性布局中,并在同一行(就像水平)中显示,前提是它们完全适合。

Eg2:输入是 4 个按钮,它们不能放在整行中

预期输出:- Line1:- Button1 Button2 (假设 Button3 不完全适合此行)

             Line2:-  Button3 Button4

目前,如果我将 LinearLAyout 的方向设置为水平,那么它将强制将所有 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>
4

2 回答 2

1

LinearLayout 不是这样工作的。它将垂直或水平布局项目(它不换行)。你有几个选择。

听起来您的按钮大小不同(因此您可能不想使用gridview),您可以创建包含多个Horizo​​ntalLinearLayouts 的Vertical LinearLayout(依次持有Button)。

或者,您可以滚动您自己的自定义 ViewGroup。这两种方法都需要您编写计算逻辑来确定适合一行的内容。您的自定义视图组最终可能会更干净,但需要更多关于视图的知识。

于 2013-05-20T22:51:59.567 回答
0

我的理解是您需要动态加载 n 个视图,并且您希望您的视图自动转移到您的父视图上。我认为您需要的只是一个带有简单适配器的网格视图。您的 gridview 的“单元格”将是您案例中的按钮。有很多关于它的信息。这是 google 提供的简单指南。

http://developer.android.com/guide/topics/ui/layout/gridview.html

希望我能帮助你。问候。

于 2013-05-20T21:15:52.750 回答