layout_weight =“。4”看起来比layout_weight =“。”

时间:2017-01-17 04:14:09

标签: android android-layout

此。我不明白为什么第一个布局看起来比第二个布局大,如果最后一个布局有.6(60%)。

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

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight=".4" >

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight=".6">
    </RelativeLayout>
</LinearLayout>

4 个答案:

答案 0 :(得分:1)

@Miguel Barra适用于此

   android:layout_width="match_parent"

替换为

   android:layout_width="wrap_content"

   android:layout_width="0dp"

在你的两个相对布局

答案 1 :(得分:0)

老实说,我没有尝试过分数权重值,但理论上它们应该有效。但我认为这里的问题是,你需要将Relativelayout的layout_width设置为0dp。只有这时权重参数才会生效。试试看。 来自android docs -

  

创建一个线性布局,其中每个孩子使用相同数量的   屏幕上的空格,设置每个视图的android:layout_height   “0dp”(用于垂直布局)或每个视图的android:layout_width   到“0dp”(对于水平布局)。然后设置android:layout_weight   每个视图为“1”。

答案 2 :(得分:0)

你应该有这个。

如果你使用体重,有两种情况

案例1:如果您有横向父母。你应该有layout_width =&#34; 0dp&#34;

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

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".6" >

        </RelativeLayout>

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".4">
        </RelativeLayout>
    </LinearLayout>

案例1:如果您有垂直父母。你应该有layout_height =&#34; 0dp&#34;

<?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"
    android:weightSum="1">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".6" >

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".4">
    </RelativeLayout>
</LinearLayout>

答案 3 :(得分:0)

layout_height = "0dp"(父视图)中设置LinearLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal" android:layout_width="match_parent"
layout_height = "0dp" >

<RelativeLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight=".6" >

</RelativeLayout>

<RelativeLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight=".4">
</RelativeLayout>
</LinearLayout>

另外就是添加你的子视图权重和值(0.6 + 0.4 = 1)

android:weightSum="1" 
LinearLayout

中的

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal" 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1" >