【问题标题】:Not able to set width of a horizontal linear layout or height of vertical linear layout无法设置水平线性布局的宽度或垂直线性布局的高度
【发布时间】:2018-09-21 04:33:20
【问题描述】:

我已经做了一个片段布局,代码如下所示。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/bill_display_id"
    android:layout_gravity="start"
    tools:context=".HomePage">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/zoom">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/bill_text_id"
            />

        <HorizontalScrollView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/scroll_horiz_id">

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@android:drawable/btn_default"
                android:orientation="horizontal"
                android:id="@+id/zoom_lin">

                <View
                    android:layout_height="match_parent"
                    android:layout_width="1dp"
                    android:background="@android:color/black" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:padding="20dp"
                    android:id="@+id/prd_id">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Product"
                        android:layout_gravity="center"
                        />

                </LinearLayout>

                <View
                    android:layout_height="match_parent"
                    android:layout_width="1dp"
                    android:background="@android:color/black" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:padding="20dp"
                    android:id="@+id/rate_id">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Rate"
                        android:layout_gravity="center"
                        />

                </LinearLayout>

                <View
                    android:layout_height="match_parent"
                    android:layout_width="1dp"
                    android:background="@android:color/black" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:padding="20dp"
                    android:id="@+id/qty_id">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Qty"
                        android:layout_gravity="center"
                        />

                </LinearLayout>

                <View
                    android:layout_height="match_parent"
                    android:layout_width="1dp"
                    android:background="@android:color/black" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:padding="20dp"
                    android:id="@+id/price_id">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Price"
                        android:layout_gravity="center"
                        />

                </LinearLayout>

                <View
                    android:layout_height="match_parent"
                    android:layout_width="1dp"
                    android:background="@android:color/black" />

            </LinearLayout>

        </HorizontalScrollView>

    </LinearLayout>

</ScrollView>

现在我有一个函数setZoom(如下所示),我试图在其中设置水平线性布局的高度和宽度(id = zoom_lin)。 但我看到只有高度被设置,而不是宽度。

protected void setZoom(float val)
{

    View horz_lin = rootView.findViewById(R.id.zoom_lin);
    ViewGroup.LayoutParams lp = horz_lin.getLayoutParams();
    lp.width = 300;    // 300 is a random number for testing only
    lp.height = 600;   // 600 is a random number for testing only
    horz_lin.requestLayout();

}

同样,如果我尝试为垂直线性布局(id = 缩放)设置高度和宽度,我看到只有宽度被设置,而不是高度。

是否有规则禁止我们设置水平线性布局的宽度和垂直线性布局的高度。

由于我是 android 开发的初学者,如果遗漏了一些琐碎的事情,请见谅。

【问题讨论】:

    标签: android android-layout android-fragments


    【解决方案1】:

    您需要将更新后的 layoutParams 设置回线性布局:

    protected void setZoom(float val)
    {
    
        LinearLayout horz_lin = (LinearLayout)rootView.findViewById(R.id.zoom_lin);
        ViewGroup.LayoutParams lp = horz_lin.getLayoutParams();
        lp.width = 300;    // 300 is a random number for testing only
        lp.height = 600;   // 600 is a random number for testing only
        horz_lin.setLayoutParams(lp); // ADD THIS LINE
        horz_lin.requestLayout();
    
    }
    

    【讨论】:

    • 抱歉,这不会解决任何问题。正如我在问题中提到的,高度已设置,但宽度未设置。与您建议的行相同。
    猜你喜欢
    • 1970-01-01
    • 2017-08-26
    • 2015-07-27
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多