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

Android Droid:水平滚动视图中的大小按钮,android,scrollview,Android,Scrollview,我有一个表布局,其中有3个按钮按比例缩放以填充屏幕底部。我想用滚动视图替换这些按钮,以适应更多的按钮。我添加了一个滚动视图并添加了按钮,但是它们的宽度减少到了宽度的1/4,四个按钮的宽度。scrollview工作正常,但我无法缩放它或按钮,在更大的显示屏上,按钮在过去缩放的地方仍然很小 这是我的行代码: <TableRow android:id="@+id/TableRow5" android:layout_width="match_parent"

我有一个表布局,其中有3个按钮按比例缩放以填充屏幕底部。我想用滚动视图替换这些按钮,以适应更多的按钮。我添加了一个滚动视图并添加了按钮,但是它们的宽度减少到了宽度的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?

这有点难以解释

测量子视图时,LinearLayout将首先尝试根据子视图的大小将其空间划分给子视图,然后根据子视图的权重划分其余空间

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


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

尝试将每个按钮的
布局\u宽度更改为
“0dp”
,以便更好地使用权重。另外,尝试将您的
weightSum
更改为3,将每个按钮的重量保持为1。好主意,不起作用在我看来,Android对xml UI的实现严重不足。为什么尺寸没有百分比选项?如果我能将我的按钮设置为屏幕宽度的33%,并将包含的视图设置为100%,那就很容易了。相反,我必须在代码中完成,打破了独立xml接口的想法。如果没有其他的解决办法,我会把它作为答案。谢谢。您可以使用权重表示百分比,但它是相对于父视图(LinearLayout)的。您还可以使用layout_width=“match_parent”将父视图的宽度设置为100%屏幕宽度,并且当您只有3个按钮时,它就可以工作。现在您希望有6个按钮,这意味着您希望父视图的宽度为屏幕宽度的200%,这是不受支持的。