Android 固定宽度线性布局

Android 固定宽度线性布局,android,android-linearlayout,fixed,Android,Android Linearlayout,Fixed,我试图得到两个并排的线性布局,并将内容放在其中 我希望两个线性布局并排,但左边的应该占屏幕的3/4左右,右边的占其余部分 这是我的代码: 但是这两个线性布局总是根据内容改变宽度和高度 我怎样才能有两个固定宽度和高度并排的线性布局 始终欢迎使用RelativeLayout提供更好的解决方案 结果是: 两个权重似乎都设置为“1”。你试过“.5”吗 试试这个,我增加了体重 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xml

我试图得到两个并排的线性布局,并将内容放在其中

我希望两个线性布局并排,但左边的应该占屏幕的3/4左右,右边的占其余部分

这是我的代码:

但是这两个线性布局总是根据内容改变宽度和高度

我怎样才能有两个固定宽度和高度并排的线性布局

始终欢迎使用RelativeLayout提供更好的解决方案

结果是:


两个权重似乎都设置为“1”。你试过“.5”吗


试试这个,我增加了体重

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

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".75"
        android:background="@color/colorPrimary"
        android:gravity="left|center"
        android:orientation="vertical">

        <TextView
            android:id="@+id/repository_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="AAAAA"
            android:textColor="@color/blue"
            android:textSize="20dp" />

        <TextView
            android:id="@+id/repository_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="end"
            android:maxLines="2"
            android:text="AAAAA"
            android:textColor="@color/gray"
            android:textSize="15dp" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_menu_camera" />

            <TextView
                android:id="@+id/repository_fork_number"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="123"
                android:textColor="@color/orange"
                android:textSize="20dp" />

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:src="@drawable/ic_menu_camera" />

            <TextView
                android:id="@+id/repository_star_number"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="123"
                android:textColor="@color/orange"
                android:textSize="20dp" />

        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".25"
        android:background="@color/colorAccent"
        android:gravity="center"
        android:orientation="vertical">

        <de.hdodenhof.circleimageview.CircleImageView
            android:id="@+id/user_image"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true" />

        <TextView
            android:id="@+id/username"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="AAAAA"
            android:textColor="@color/blue" />

        <TextView
            android:id="@+id/first_last_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Mock Name"
            android:textColor="@color/lightGray" />

    </LinearLayout>

</LinearLayout>

使用
LinearLayout
layout\u weight
属性和
android:weightSum
属性作为父布局

做这样的事

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:padding="15dp"
    android:weightSum="1">
      <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".75" // For First layout to 3/4
        android:background="@color/colorPrimary"
        android:gravity="left|center"
        android:orientation="vertical">
            //First Layout content Here
        </LinearLayout>

        <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".25" // For Second layout to rest of screen
        android:background="@color/colorAccent"
        android:gravity="center"
        android:orientation="vertical">
               //Second Layout Content Here
           </LinearLayout>
</LinearLayout>

//首先在这里布局内容
//第二个布局内容在这里

试试这个,给你的第一个
线性布局
android:layout\u weight=“.75”
,这样它可以在屏幕上占据3/4的空间 然后将android:layout\u weight=“0.25”分配给第二个
线性布局
,这样它就可以占用剩余的空间

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

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.75"
        android:background="@color/colorPrimary"
        android:orientation="vertical">

        <TextView
            android:id="@+id/repository_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="AAAAA"
            android:textColor="@color/colorBlue"
            android:textSize="20dp" />

        <TextView
            android:id="@+id/repository_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="end"
            android:maxLines="2"
            android:text="AAAAA"
            android:textColor="@color/colorGreen"
            android:textSize="15dp" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_menu_camera" />

            <TextView
                android:id="@+id/repository_fork_number"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="123"
                android:textColor="@color/colorPrimary"
                android:textSize="20dp" />

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:src="@drawable/ic_menu_camera" />

            <TextView
                android:id="@+id/repository_star_number"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="123"
                android:textColor="@color/colorPrimary"
                android:textSize="20dp" />

        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.25"
        android:background="@color/colorAccent"
        android:gravity="center"
        android:orientation="vertical">

        <de.hdodenhof.circleimageview.CircleImageView
            android:id="@+id/user_image"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true" />

        <TextView
            android:id="@+id/username"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="AAAAA"
            android:textColor="@color/colorBlue" />

        <TextView
            android:id="@+id/first_last_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Mock Name"
            android:textColor="@color/colorRed" />

    </LinearLayout>

</LinearLayout>

首先从父布局中删除weightSum属性

如果你希望你的第一个布局是3/4,你应该为另一个设置0.75和0.25(1/4)的权重,如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp">

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/colorPrimary"
    android:layout_weight=".75"
    android:layout_gravity="left"
    android:gravity="left|center">

    <TextView
        android:id="@+id/repository_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="AAAAA"
        android:textColor="@color/blue"
        android:textSize="20dp"/>

    <TextView
        android:id="@+id/repository_description"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxLines="2"
        android:ellipsize="end"
        android:text="AAAAA"
        android:textColor="@color/gray"
        android:textSize="15dp"/>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_menu_camera"/>

        <TextView
            android:id="@+id/repository_fork_number"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="123"
            android:textColor="@color/orange"
            android:textSize="20dp"/>

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_menu_camera"
            android:layout_marginLeft="15dp"/>

        <TextView
            android:id="@+id/repository_star_number"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="123"
            android:textColor="@color/orange"
            android:textSize="20dp"/>

    </LinearLayout>

</LinearLayout>

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/colorAccent"
    android:layout_weight=".25"
    android:gravity="center">

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/user_image"
        android:layout_width="40dp"
        android:layout_height="40dp" />

    <TextView
        android:id="@+id/username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="AAAAA"
        android:textColor="@color/blue"/>

    <TextView
        android:id="@+id/first_last_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Mock Name"
        android:textColor="@color/lightGray"/>

</LinearLayout>

试试这个:

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

            <LinearLayout

                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight=".75"
                android:orientation="vertical"
                android:visibility="visible">

                <TextView

                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"

                    android:textColor="#000"
                    android:textSize="16dp" />

                <TextView

                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/shape_txt"
                    android:gravity="center"
                  />

            </LinearLayout>

            <LinearLayout

                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight=".25"
                android:orientation="vertical"
                android:visibility="visible">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"

                    android:textColor="#000"
                    android:textSize="16dp" />

                <TextView

                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/shape_txt"
                    android:gravity="center"
                    />

            </LinearLayout>
        </LinearLayout>

我知道您要求使用
LinearLayout
解决此问题,但我建议您使用
ConstraintLayout
解决此问题。没有嵌套视图,您将获得难以置信的性能改进

在这个示例中,我在屏幕左侧的75%处添加了一个
垂直指南。我只需删除嵌套的LinearLayouts并将约束添加到视图中

试试看

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>

<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="0dp"
    android:layout_height="628dp"
    android:layout_marginBottom="8dp"
    android:layout_marginTop="8dp"
    android:background="@color/colorPrimary"
    android:gravity="left|center"
    android:orientation="vertical"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/guideline4"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <TextView
        android:id="@+id/repository_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="AAAAA"
        android:textColor="@color/blue"
        android:textSize="20dp" />

    <TextView
        android:id="@+id/repository_description"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:maxLines="2"
        android:text="AAAAA"
        android:textColor="@color/gray"
        android:textSize="15dp" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_menu_camera" />

        <TextView
            android:id="@+id/repository_fork_number"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="123"
            android:textColor="@color/orange"
            android:textSize="20dp" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:src="@drawable/ic_menu_camera" />

        <TextView
            android:id="@+id/repository_star_number"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="123"
            android:textColor="@color/orange"
            android:textSize="20dp" />

    </LinearLayout>

</LinearLayout>

<LinearLayout
    android:id="@+id/linearLayout3"
    android:layout_width="0dp"
    android:layout_height="628dp"
    android:layout_marginBottom="8dp"
    android:layout_marginTop="8dp"
    android:background="@color/colorAccent"
    android:gravity="center"
    android:orientation="vertical"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="@+id/guideline4"
    app:layout_constraintTop_toTopOf="parent">

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/user_image"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true" />

    <TextView
        android:id="@+id/username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="AAAAA"
        android:textColor="@color/blue" />

    <TextView
        android:id="@+id/first_last_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Mock Name"
        android:textColor="@color/lightGray" />

</LinearLayout>

<android.support.constraint.Guideline
    android:id="@+id/guideline4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_percent="0.75" />


将父布局中的权重总和更改为4,并将子线性布局的权重添加为3,这样子线性布局可以占用3/4的空间,子线性布局的权重为1,这样子线性布局将占用剩余的空间

<?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:padding="15dp"
    android:weightSum="4">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3"
        android:background="@color/colorPrimary"
        android:gravity="left|center"
        android:orientation="vertical">

        //Your contents

    </LinearLayout>


    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@color/colorAccent"
        android:gravity="center"
        android:orientation="vertical">

        //Your contents

    </LinearLayout>

</LinearLayout>

//你的内容
//你的内容

如果您可以共享输出的任何图像,那就好了。done=)对不起,我忘记了第一个线性布局
android:layout_-weight=“.75”
和第二个线性布局
android:layou-weight=“.25”
您是否以编程方式更改布局参数?@NileshRathod,它不起作用。对于3/4加0.75如果它们都有相同的重量,它不应该将空间分成正好两部分吗?我认为如果他们两人都在0,是的,这样分裂是正好在中间。所需的权重或重要性(请参阅)取决于所需的结果。一个更复杂或更灵活的布局应该是ContrainLayout,或者使用RelativeLayout。我也会选择一个包含两个孩子的
RelativeLayout
。为什么要投反对票。。。?请同时提出一个合理的理由,以便我能改进我的回答我没有否决投票。我尝试过你的解决方案,但没有成功。在android studio上看起来不错,但当我在emulator上运行时,它中断了,因为“description”字段很长
<?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:padding="15dp"
    android:weightSum="4">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3"
        android:background="@color/colorPrimary"
        android:gravity="left|center"
        android:orientation="vertical">

        //Your contents

    </LinearLayout>


    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@color/colorAccent"
        android:gravity="center"
        android:orientation="vertical">

        //Your contents

    </LinearLayout>

</LinearLayout>