无法设置水平线性布局的宽度或垂直线性布局的高度

时间:2018-09-20 19:32:08

标签: android android-layout android-fragments

我制作了一个片段布局,其代码如下所示。

transaction.atomic()

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

<?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>

类似地,如果我尝试为垂直线性布局设置高度和宽度(id =缩放),我会看到仅设置宽度而不是高度。

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

如果我缺少一些琐碎的东西,请问我,因为我是android开发的初学者。

1 个答案:

答案 0 :(得分:0)

您需要将更新后的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();

}