layout_weight的RelativeLayout不起作用

时间:2016-05-19 07:18:28

标签: android android-layout

我有4个LinearLayoutlayout_weight为0.25(每个都使用屏幕高度的25%),前3个LinearLayout包含ImageViewRelativeLayout的{​​{1}}为layout_weight(它们都占LinearLayout宽度的50%)并且它们正常工作,问题发生在包含2 {LinearLayout的{​​{1}}上{1}},这是结构:

RelativeLayout

这个LinearLayout不起作用,它没有占据屏幕的25%高度,而且它只是不可见.. <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="1.0" android:layout_weight=".25"> <RelativeLayout android:layout_height="match_parent" android:layout_weight=".5" android:layout_width="0dip" android:background="@color/white"> <ImageView android:layout_width="30dp" android:layout_height="30dp" android:src="@drawable/icon_news" android:scaleType="centerInside" android:layout_centerHorizontal="true" android:layout_above="@+id/newsTextView" /> <TextView android:id="@+id/newsTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="News" android:gravity="center_horizontal" android:layout_centerInParent="true" android:textColor="@color/mainBlue" android:textSize="20sp" android:textStyle="bold" android:layout_margin="10dp"/> </RelativeLayout> <RelativeLayout android:layout_height="match_parent" android:layout_weight=".5" android:layout_width="0dip" android:background="@color/white"> <ImageView android:layout_width="30dp" android:layout_height="30dp" android:src="@drawable/icon_contacts" android:scaleType="centerInside" android:layout_centerHorizontal="true" android:layout_above="@+id/contactTextView" /> <TextView android:id="@+id/contactTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Contatti" android:gravity="center_horizontal" android:layout_centerInParent="true" android:textColor="@color/mainBlue" android:textSize="20sp" android:textStyle="bold" android:layout_margin="10dp"/> </RelativeLayout> </LinearLayout> 与{{RelativeLayout是否有问题1}?我该怎么做才能解决这个问题?

修改

这是整个XML:

layout_weight

3 个答案:

答案 0 :(得分:2)

  

Linear Layout添加为Root Layout weightSum 1

请参阅此内容。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:pew="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:weightSum="1">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.25"
            android:orientation="horizontal"
            android:weightSum="1.0">

            <ImageView
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight=".5"
                android:scaleType="centerCrop"
                android:src="@mipmap/ic_launcher" />

            <RelativeLayout
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:background="#FFF">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_margin="10dp"
                    android:gravity="left"
                    android:text="Sezione 1"
                    android:textColor="#000"
                    android:textSize="20sp"
                    android:textStyle="bold" />
            </RelativeLayout>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.25"
            android:orientation="horizontal"
            android:weightSum="1.0">

            <RelativeLayout
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:background="#FFF">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_margin="10dp"
                    android:gravity="left"
                    android:text="Sezione 2"
                    android:textColor="#000"
                    android:textSize="20sp"
                    android:textStyle="bold" />
            </RelativeLayout>

            <ImageView
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight=".5"
                android:scaleType="centerCrop"
                android:src="@mipmap/ic_launcher" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.25"
            android:orientation="horizontal"
            android:weightSum="1.0">

            <ImageView
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight=".5"
                android:scaleType="centerCrop"
                android:src="@mipmap/ic_launcher" />

            <RelativeLayout
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:background="#FFF">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_margin="10dp"
                    android:gravity="left"
                    android:text="Sezione 1"
                    android:textColor="#000"
                    android:textSize="20sp"
                    android:textStyle="bold" />
            </RelativeLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.25"
            android:orientation="horizontal"
            android:weightSum="1.0">

            <RelativeLayout
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:background="#FFF">

                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_above="@+id/newsTextView"
                    android:layout_centerHorizontal="true"
                    android:scaleType="centerInside"
                    android:src="@mipmap/ic_launcher" />

                <TextView
                    android:id="@+id/newsTextView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_margin="10dp"
                    android:gravity="center_horizontal"
                    android:text="News"
                    android:textColor="#000"
                    android:textSize="20sp"
                    android:textStyle="bold" />
            </RelativeLayout>

            <RelativeLayout
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:background="#FFF">

                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_above="@+id/contactTextView"
                    android:layout_centerHorizontal="true"
                    android:scaleType="centerInside"
                    android:src="@mipmap/ic_launcher" />

                <TextView
                    android:id="@+id/contactTextView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_margin="10dp"
                    android:gravity="center_horizontal"
                    android:text="Contatti"
                    android:textColor="#000"
                    android:textSize="20sp"
                    android:textStyle="bold" />
            </RelativeLayout>

        </LinearLayout>

    </LinearLayout>
</RelativeLayout>

答案 1 :(得分:0)

使用以下代码解决此问题:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="1"
    android:orientation="vertical" >
     <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dip"
            android:orientation="horizontal"
            android:weightSum="1.0"
            android:layout_weight=".25">
            <RelativeLayout
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:layout_width="0dip"
              >
             <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:scaleType="centerInside"
                    android:layout_centerHorizontal="true"
                    android:layout_above="@+id/newsTextView"
                    />
                <TextView
                    android:id="@+id/newsTextView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="News"
                    android:gravity="center_horizontal"
                    android:layout_centerInParent="true"
                    android:textSize="20sp"
                    android:textStyle="bold"
                    android:layout_margin="10dp"/>
            </RelativeLayout>

            <RelativeLayout
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:layout_width="0dip"
               >
                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:scaleType="centerInside"
                    android:layout_centerHorizontal="true"
                    android:layout_above="@+id/contactTextView"
                    />
                <TextView
                    android:id="@+id/contactTextView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="Contatti"
                    android:gravity="center_horizontal"
                    android:layout_centerInParent="true"
                    android:textSize="20sp"
                    android:textStyle="bold"
                    android:layout_margin="10dp"/>
            </RelativeLayout>

        </LinearLayout>

</LinearLayout>

答案 2 :(得分:0)

嘿,我测试了你的代码,似乎你给每个4个孩子的布局都有问题。

只需替换

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight=".25"
    android:orientation="horizontal"
    android:weightSum="1.0" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight=".25"
    android:orientation="horizontal"
    android:weightSum="1.0" >

并对所有4个子视图执行相同操作。

供参考

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:pew="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:weightSum="1.0" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".25"
            android:orientation="horizontal"
            android:weightSum="1.0" >

            <ImageView
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight=".5"
                android:scaleType="centerCrop"
                android:src="@drawable/cat1" />

            <RelativeLayout
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:background="@android:color/holo_blue_bright" >

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_margin="10dp"
                    android:gravity="left"
                    android:text="Sezione 1"
                    android:textColor="#fff"
                    android:textSize="20sp"
                    android:textStyle="bold" />
            </RelativeLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".25"
            android:orientation="horizontal"
            android:weightSum="1.0" >

            <RelativeLayout
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:background="@android:color/holo_blue_bright" >

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_margin="10dp"
                    android:gravity="left"
                    android:text="Sezione 2"
                    android:textColor="#fff"
                    android:textSize="20sp"
                    android:textStyle="bold" />
            </RelativeLayout>

            <ImageView
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight=".5"
                android:scaleType="centerCrop"
                android:src="@drawable/cat2" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".25"
            android:orientation="horizontal"
            android:weightSum="1.0" >

            <ImageView
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight=".5"
                android:scaleType="centerCrop"
                android:src="@drawable/cat3" />

            <RelativeLayout
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:background="@android:color/holo_blue_bright" >

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_margin="10dp"
                    android:gravity="left"
                    android:text="Sezione 1"
                    android:textColor="#fff"
                    android:textSize="20sp"
                    android:textStyle="bold" />
            </RelativeLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".25"
            android:orientation="horizontal"
            android:weightSum="1.0" >

            <RelativeLayout
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:background="#fff" >

                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_above="@+id/newsTextView"
                    android:layout_centerHorizontal="true"
                    android:scaleType="centerInside"
                    android:src="@drawable/icon" />

                <TextView
                    android:id="@+id/newsTextView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_margin="10dp"
                    android:gravity="center_horizontal"
                    android:text="News"
                    android:textColor="@android:color/holo_blue_bright"
                    android:textSize="20sp"
                    android:textStyle="bold" />
            </RelativeLayout>

            <RelativeLayout
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:background="#fff" >

                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_above="@+id/contactTextView"
                    android:layout_centerHorizontal="true"
                    android:scaleType="centerInside"
                    android:src="@drawable/icon" />

                <TextView
                    android:id="@+id/contactTextView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_margin="10dp"
                    android:gravity="center_horizontal"
                    android:text="Contatti"
                    android:textColor="@android:color/holo_blue_bright"
                    android:textSize="20sp"
                    android:textStyle="bold" />
            </RelativeLayout>
        </LinearLayout>
    </LinearLayout>

</RelativeLayout>

快乐的编码。