Jess Yuan
Jess Yuan

Reputation: 1621

LinearLayout inside layout is not matching parent

LinearLayout inside layout is not matching parent when orientation is horizontal, width is 0dp, and set weight. This XML file is used to RecyclerView item layout. The layout XML file is following:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:orientation="vertical"
                  android:layout_width="match_parent"
                  android:layout_height="150dp"
                  android:paddingTop="@dimen/screen_padding"
                  android:paddingLeft="@dimen/screen_padding"
                  android:paddingRight="@dimen/screen_padding">

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:orientation="horizontal">

        <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="粤T24833"
                android:textSize="30dp"
                android:textColor="@color/deep_gray"
                android:background="@drawable/border"
                android:id="@+id/textView9"/>

        <LinearLayout
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:orientation="vertical">

            <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:text="行驶里程(km): 10000"
                    android:textSize="@dimen/font_24"
                    android:textColor="@color/gray"
                    android:background="@drawable/border"
                    android:id="@+id/textView11"/>

            <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:text="运行时间(min): 238"
                    android:textSize="@dimen/font_24"
                    android:textColor="@color/gray"
                    android:background="@drawable/border"
                    android:id="@+id/textView10"/>
        </LinearLayout>

    </LinearLayout>

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:orientation="horizontal">

        <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="停车次数"
                android:id="@+id/textView"
                android:textSize="@dimen/font_24"
                android:textColor="@color/deep_gray"
                android:background="@drawable/border"/>

        <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="熄火次数"
                android:id="@+id/textView2"
                android:textSize="@dimen/font_24"
                android:textColor="@color/deep_gray"
                android:background="@drawable/border"/>

        <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="行驶次数"
                android:id="@+id/textView3"
                android:textSize="@dimen/font_24"
                android:textColor="@color/deep_gray"
                android:background="@drawable/border"/>


        <LinearLayout
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:orientation="vertical">

            <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:text="提速次数"
                    android:id="@+id/textView4"
                    android:textSize="@dimen/font_24"
                    android:textColor="@color/deep_gray"
                    android:background="@drawable/border"/>

            <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:orientation="horizontal">

                <TextView
                        android:layout_width="0dp"
                        android:layout_weight="1"
                        android:layout_height="match_parent"
                        android:gravity="center"
                        android:text="80~100"
                        android:textSize="@dimen/font_24"
                        android:textColor="@color/gray"
                        android:background="@drawable/border"/>

                <TextView
                        android:layout_width="0dp"
                        android:layout_weight="1"
                        android:layout_height="match_parent"
                        android:gravity="center"
                        android:text=">100"
                        android:textSize="@dimen/font_24"
                        android:textColor="@color/gray"
                        android:background="@drawable/border"/>


            </LinearLayout>

        </LinearLayout>

    </LinearLayout>

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="148"
                android:textSize="@dimen/font_24"
                android:textColor="@color/gray"
                android:id="@+id/textView8"
                android:background="@drawable/border"/>

        <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="5"
                android:textSize="@dimen/font_24"
                android:textColor="@color/gray"
                android:id="@+id/textView5"
                android:background="@drawable/border"/>

        <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="24"
                android:textSize="@dimen/font_24"
                android:textColor="@color/gray"
                android:background="@drawable/border"/>


        <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:orientation="horizontal">

            <TextView
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:text="3"
                    android:textSize="@dimen/font_24"
                    android:textColor="@color/gray"
                    android:id="@+id/textView6"
                    android:background="@drawable/border"/>

            <TextView
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:text="25"
                    android:textSize="@dimen/font_24"
                    android:textColor="@color/gray"
                    android:id="@+id/textView7"
                    android:background="@drawable/border"/>


        </LinearLayout>


    </LinearLayout>

</LinearLayout>

The screenshot is following:
enter image description here

RecylerView Layout XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <include layout="@layout/view_line"/>

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:gravity="center">

        <TextView
                android:id="@+id/tv_start_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="2016-11-09"
                android:textSize="@dimen/font_24"/>

        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="  ~  "
                android:textSize="@dimen/font_24"/>

        <TextView
                android:id="@+id/tv_end_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="2016-11-09"
                android:textSize="@dimen/font_24"/>

    </LinearLayout>

    <include layout="@layout/view_line"/>

    <android.support.v7.widget.RecyclerView
            android:id="@+id/rclv_operative_table"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingTop="@dimen/screen_padding"
            android:paddingBottom="@dimen/screen_padding">

    </android.support.v7.widget.RecyclerView>

</LinearLayout>

Upvotes: 1

Views: 1242

Answers (1)

NamNH
NamNH

Reputation: 1805

I see no problem on your code, so I'm not sure my change can help, but try it. Also for the Nested weights are bad for performance, I think you know it so you should care about it.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="150dp"
    android:paddingTop="@dimen/screen_padding"
    android:paddingLeft="@dimen/screen_padding"
    android:paddingRight="@dimen/screen_padding">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal">

        <TextView
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="粤T24833"
            android:textSize="30sp"
            android:textColor="@color/deep_gray"
            android:background="@drawable/border"
            android:id="@+id/textView9"/>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="30dp"
                android:gravity="center"
                android:text="行驶里程(km): 10000"
                android:textSize="@dimen/font_24"
                android:textColor="@color/gray"
                android:background="@drawable/border"
                android:id="@+id/textView11"/>

            <TextView
                android:layout_width="match_parent"
                android:layout_height="30dp"
                android:gravity="center"
                android:text="运行时间(min): 238"
                android:textSize="@dimen/font_24"
                android:textColor="@color/gray"
                android:background="@drawable/border"
                android:id="@+id/textView10"/>
        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:orientation="horizontal">

        <TextView
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="停车次数"
            android:id="@+id/textView"
            android:textSize="@dimen/font_24"
            android:textColor="@color/deep_gray"
            android:background="@drawable/border"/>

        <TextView
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="熄火次数"
            android:id="@+id/textView2"
            android:textSize="@dimen/font_24"
            android:textColor="@color/deep_gray"
            android:background="@drawable/border"/>

        <TextView
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="行驶次数"
            android:id="@+id/textView3"
            android:textSize="@dimen/font_24"
            android:textColor="@color/deep_gray"
            android:background="@drawable/border"/>


        <LinearLayout
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="20dp"
                android:gravity="center"
                android:text="提速次数"
                android:id="@+id/textView4"
                android:textSize="@dimen/font_24"
                android:textColor="@color/deep_gray"
                android:background="@drawable/border"/>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="20dp"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:text="80~100"
                    android:textSize="@dimen/font_24"
                    android:textColor="@color/gray"
                    android:background="@drawable/border"/>

                <TextView
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:text=">100"
                    android:textSize="@dimen/font_24"
                    android:textColor="@color/gray"
                    android:background="@drawable/border"/>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="148"
            android:textSize="@dimen/font_24"
            android:textColor="@color/gray"
            android:id="@+id/textView8"
            android:background="@drawable/border"/>

        <TextView
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="5"
            android:textSize="@dimen/font_24"
            android:textColor="@color/gray"
            android:id="@+id/textView5"
            android:background="@drawable/border"/>

        <TextView
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="24"
            android:textSize="@dimen/font_24"
            android:textColor="@color/gray"
            android:background="@drawable/border"/>


        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="3"
                android:textSize="@dimen/font_24"
                android:textColor="@color/gray"
                android:id="@+id/textView6"
                android:background="@drawable/border"/>

            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="25"
                android:textSize="@dimen/font_24"
                android:textColor="@color/gray"
                android:id="@+id/textView7"
                android:background="@drawable/border"/>
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

Upvotes: 1

Related Questions