Droid:水平滚动视图中的大小按钮

时间:2012-12-14 14:26:00

标签: android scrollview

我有一个表格布局,其中有3个按钮可以缩放以填充屏幕底部。我想用滚动视图替换这些按钮以适应更多按钮。我添加了一个scrollview并添加了按钮,但它们的宽度减小到宽度的1/4,宽度为四个按钮。 scrollview工作正常,但我无法缩放它或按钮,而在较大的显示器上,按钮仍然很小,用于缩放。

这是我的行代码:

    <TableRow
        android:id="@+id/TableRow5"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <HorizontalScrollView
            android:id="@+id/horizontalScrollView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_span="3"
            android:layout_weight="1"
            >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="horizontal"
                android:weightSum="6" >

                <Button
                    android:id="@+id/button_low"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_margin="5dp"
                    android:layout_weight="1"
                    android:background="@drawable/sgbutton"
                    android:onClick="preLaunch"
                    android:padding="5dp"
                    android:tag="1"
                    android:text="@string/button_label_low"
                    android:textSize="16dp"
                    android:textStyle="normal" />

                <Button
                    android:id="@+id/button_high"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_margin="5dp"
                    android:layout_weight="1"
                    android:background="@drawable/sgbutton"
                    android:onClick="preLaunch"
                    android:padding="5dp"
                    android:tag="2"
                    android:text="@string/button_label_high"
                    android:textSize="16dp"
                    android:textStyle="normal" />

                <Button
                    android:id="@+id/button_practice"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_margin="5dp"
                    android:layout_weight="1"
                    android:background="@drawable/sgbutton"
                    android:onClick="preLaunch"
                    android:padding="5dp"
                    android:tag="3"
                    android:text="practice"
                    android:textSize="16dp"
                    android:textStyle="normal" />

            <Button
                android:id="@+id/Button012"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/sgbutton"
                android:padding="5dp"
                android:tag="1"
                android:text="@string/button_label_low"
                android:textSize="16dp"
                android:textStyle="normal" />

            <Button
                android:id="@+id/Button011"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/sgbutton"
                android:padding="5dp"
                android:tag="2"
                android:text="@string/button_label_high"
                android:textSize="16dp"
                android:textStyle="normal" />

            <Button
                android:id="@+id/Button013"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/sgbutton"
                android:padding="5dp"
                android:tag="3"
                android:text="practice"
                android:textSize="16dp"
                android:textStyle="normal" />
            </LinearLayout>
        </HorizontalScrollView>
    </TableRow>

如何让按钮缩放到显示宽度的1/3?

1 个答案:

答案 0 :(得分:0)

这有点难以解释。

在测量儿童视图时,LinearLayout将首先尝试根据子视图的大小将其空间划分为子视图,然后根据其重量划分剩余的空间。

在划分空格之前,父LinearLayout应该知道它的宽度。但在Horizo​​ntalScrollView中,LinearLayout不知道应该有多大,它必须首先测量其子视图以获得总和大小。在这种情况下,重量不能工作,因为没有剩余空间。 LinearLayout的宽度等于按钮的宽度总和。

我认为你必须在代码中设置宽度。将每个按钮的宽度设置为screenWidth / 3。