簡體   English   中英

無法設置水平線性布局的寬度或垂直線性布局的高度

[英]Not able to set width of a horizontal linear layout or height of vertical linear layout

我做了一個片段布局,其代碼如下所示。

<?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 = zoom)設置高度和寬度,我會看到只有寬度被設置,而不是高度。

是否有任何規則禁止我們為水平線性布局設置寬度和為垂直線性布局設置高度。

如果我缺少一些瑣碎的東西,請原諒我,因為我是android開發的初學者。

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

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM