weightSum没有在android中正确分割屏幕

时间:2016-04-04 11:04:25

标签: android android-layout

这是我的布局文件。

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

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="vertical">

            <TextView
                android:id="@+id/mainText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dip"
                android:text="Default Text"
                android:textSize="24dip" />


            <TextView
                android:id="@+id/detailsText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dip"
                android:text="Default Text"

                android:layout_gravity="center_horizontal" />


        </LinearLayout>

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_gravity="center"
            android:text="Hot"
            />

    </LinearLayout> 

我想将屏幕宽度分成两部分。第一部分将有2个文本(第二部分低于第一部分),第二部分有一个按钮。

上述布局将屏幕分为3个部分。我不明白为什么?

任何人都可以帮我这个吗? 我想在第一个下面显示两个文本

5 个答案:

答案 0 :(得分:2)

您的android:layout_width属性应为0dp

设置 -

android:layout_width="0dp"

表示内部LinearLayoutButton

问题是当你想要达到比率时,你没有设置特定的尺寸(宽度或高度)来匹配父。而是将其设置为0dp,以便Android可以自动为您处理它。

答案 1 :(得分:2)

尝试使用证明

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


        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal"
            android:weightSum="2">

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

                <TextView
                    android:id="@+id/mainText"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dip"
                    android:text="Default Text"
                    android:textSize="24dip" />


                <TextView
                    android:id="@+id/detailsText"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="5dip"
                    android:layout_weight="0.5"
                    android:text="Default Text" />
            </LinearLayout>


                <Button
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
 android:layout_gravity="center_vertical"
                    android:text="Hot" />
            </LinearLayout>


    </RelativeLayout> 

enter image description here

答案 2 :(得分:0)

using Microsoft.AspNet.Mvc;

[Remote("IsAllowedName", "Validation", ErrorMessage="This name is not allowed!" )]

答案 3 :(得分:0)

实际上这个布局完全分裂了2部分。但也许是因为你Button的位置,你被混淆了。我建议您将layout_height根布局设置为wrap_content

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



<LinearLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center"
    android:orientation="vertical">

    <TextView
        android:id="@+id/mainText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Default Text"
        android:textSize="24dip" />


    <TextView
        android:id="@+id/detailsText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dip"
        android:text="Default Text"

        android:layout_gravity="center_horizontal" />


</LinearLayout>

<Button
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:layout_gravity="center"
    android:text="Hot"
    />

答案 4 :(得分:0)

查看以下代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal"
android:weightSum="2" >

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

    <TextView
        android:id="@+id/mainText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Default Text"
        android:textSize="24dip" />

    <TextView
        android:id="@+id/detailsText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="5dip"
        android:text="Default Text" />
</LinearLayout>

<Button
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="Hot" />

</LinearLayout>

在这段代码中,我将制作主父int 0dp

的子视图的layout_width

如果你需要进入中心,请在“中心”中给出主要父母的重要属性