Android Layout_Weight 属性不起作用[重复]

Posted

技术标签:

【中文标题】Android Layout_Weight 属性不起作用[重复]【英文标题】:Android Layout_Weight property not working [duplicate] 【发布时间】:2017-03-04 11:16:01 【问题描述】:

由于某种原因,布局“lefttop”和“topright”在我的片段中保持在 0dp。

我已经检查过,当我为任一相对布局的宽度提供实际值 (id: 50dp) 时,其中的项目实际上开始出现。我还确保“lefttop”和“topright”的父相对布局实际上实际上占用了我的卡片视图的整个宽度和高度。

我实现 weightSum 和 layout_weight 的方式有问题吗?我查看了人们遇到的许多不同的类似问题

这是我的代码:

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/card_view"
    android:layout_
    android:layout_

    card_view:cardCornerRadius="4dp"
    android:layout_margin="5dp">

    <RelativeLayout
        android:layout_
        android:layout_
        android:weightSum = "1.5">

        <!--Top Left section (name and adress)-->
        <RelativeLayout
            android:id="@+id/lefttop"
            android:layout_
            android:layout_
            android:layout_weight = "1"
            android:background="@drawable/borderright">

            <TextView
                android:id="@+id/title"
                android:layout_
                android:layout_
                android:text="contact det"
                android:gravity="center_vertical"
                android:textColor="@android:color/black"
                android:paddingLeft="5dp"
                android:textSize="40dp"
                android:layout_alignParentTop="true"/>

            <TextView
                android:id="@+id/txtName"
                android:layout_
                android:layout_
                android:text="Name"
                android:gravity="center_vertical"
                android:textSize="10dp"
                android:layout_below="@id/title"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="0dp"
                android:paddingLeft="15dp"/>
        </RelativeLayout>


        <!--top right section with type of job and company-->
       <RelativeLayout
        android:id="@+id/topright"
        android:layout_toRightOf="@+id/lefttop"
        android:layout_
        android:layout_
        android:layout_weight = "0.5"
        android:background="@drawable/borderright">


               <TextView
                   android:id="@+id/txtSurname"
                   android:layout_
                   android:layout_
                   android:text="Surname"
                   android:gravity="center_vertical"
                   android:textSize="10dp"
                   android:layout_alignParentTop="true"
                   android:layout_marginTop="10dp"
                   android:layout_marginLeft="5dp"
                   android:background="@drawable/borderdown"/>

           <TextView
               android:id="@+id/txtEmail"
               android:layout_
               android:layout_
               android:text="Email"
               android:textSize="10dp"
               android:layout_marginTop="10dp"
               android:layout_marginLeft="5dp"/>

           </RelativeLayout>




    </RelativeLayout>
    </android.support.v7.widget.CardView>

【问题讨论】:

layout_weight 仅适用于LinearLayout 内的Views。你的邮箱是RelativeLayout 成功了!奇怪的是它编译时没有任何错误。感谢迈克的及时回复! 【参考方案1】:

layout_weight 只适用于 LinearLayout ..... 这是你的解决方案......

 <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/card_view"
        android:layout_
        android:layout_

    card_view:cardCornerRadius="4dp"
    android:layout_margin="5dp">

    <LinearLayout
        android:layout_
        android:layout_
        android:weightSum = "1.5">

        <!--Top Left section (name and adress)-->
        <LinearLayout
            android:id="@+id/lefttop"
            android:layout_
            android:layout_
            android:layout_weight = "1"
            android:background="@drawable/borderright">

            <TextView
                android:id="@+id/title"
                android:layout_
                android:layout_
                android:text="contact det"
                android:gravity="center_vertical"
                android:textColor="@android:color/black"
                android:paddingLeft="5dp"
                android:textSize="40dp"
                android:layout_alignParentTop="true"/>

            <TextView
                android:id="@+id/txtName"
                android:layout_
                android:layout_
                android:text="Name"
                android:gravity="center_vertical"
                android:textSize="10dp"
                android:layout_below="@id/title"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="0dp"
                android:paddingLeft="15dp"/>
        </LinearLayout>


        <!--top right section with type of job and company-->
       <LinearLayout
        android:id="@+id/topright"
        android:layout_toRightOf="@+id/lefttop"
        android:layout_
        android:layout_
        android:layout_weight = "0.5"
        android:background="@drawable/borderright">


            <TextView
                android:id="@+id/txtSurname"
                android:layout_
                android:layout_
                android:text="Surname"
                android:gravity="center_vertical"
                android:textSize="10dp"
                android:layout_alignParentTop="true"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="5dp"
                android:background="@drawable/borderdown"/>

           <TextView
               android:id="@+id/txtEmail"
               android:layout_
               android:layout_
               android:text="Email"
               android:textSize="10dp"
               android:layout_marginTop="10dp"
               android:layout_marginLeft="5dp"/>

           </LinearLayout>

    </LinearLayout>
    </android.support.v7.widget.CardView>

【讨论】:

以上是关于Android Layout_Weight 属性不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android 开发学习进程0.16 layout_weight属性 R文件关联XML Module

[Android] android:layout_weight 属性的工作原理

Android知识点剖析系列:深入了解layout_weight属性

(android筑基系列)之LinearLayout适配问题(android:layout_weight属性)

(android筑基系列)之LinearLayout适配问题(android:layout_weight属性)

(android筑基系列)之LinearLayout适配问题(android:layout_weight属性)