【问题标题】:I want to make Layout height same as height of other layout same like equals height constraint in ios我想让布局高度与其他布局的高度相同,例如 ios 中的等于高度约束
【发布时间】:2017-01-18 15:40:18
【问题描述】:

我想制作三个高度相同的布局

  • 我想要滚动视图中的所有三个线性布局
  • 每个线性布局都是水平方向,并且有两个组件 ImageView 和 Textview
  • 在所有三个布局文本视图中都有不同的文本行
  • 现在我希望每个布局大小都相同,如果文本行更小的话

在图像中,您可以看到我遇到的确切问题,我希望橙色行高度为蓝色行和黄色行。但是你看到黄色的行高不一样

我的xml代码如下

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="1">




<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="0.4"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/frag_home_iv"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:adjustViewBounds="true"
        android:scaleType="fitXY"
        android:src="@android:drawable/sym_def_app_icon" />
</LinearLayout>
 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="0.6"
    android:orientation="vertical">

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fillViewport="true">


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


            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_weight="0.26"
                android:background="@color/colorAccent"
                android:orientation="vertical"
                android:padding="@dimen/padding_5dp">

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:orientation="horizontal"
                    android:padding="@dimen/padding_3dp"
                    android:weightSum="1">

                    <ImageView
                        android:layout_width="0dp"
                        android:layout_height="fill_parent"
                        android:layout_weight="0.33"
                        android:padding="@dimen/margin_5dp"

                        android:src="@android:drawable/sym_def_app_icon" />

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_weight="0.67"

                        android:text="asdsdgvsfdagsmdknsdjkcjkcbvuhsdjkfnh sjvnfslbvhsdfglsfvbfvufvgl,fgklcm,.vngkg.f,gm kjfbkjvn,dfmgkjhfgasfgkksfgmkdjfbndfbjkdnh,.dghlkgd"
                        android:textColor="@color/BlackColor" />


                </LinearLayout>

            </LinearLayout>
<LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_weight="0.74"
                android:orientation="vertical"
                android:weightSum="1"

                >

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_marginTop="@dimen/margin_8dp"
                    android:layout_weight="1"
                    android:background="@color/HomeListItem2"
                    android:orientation="horizontal"
                    android:padding="@dimen/padding_3dp"
                    android:weightSum="1">

                    <ImageView
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="0.3"

                        android:src="@android:drawable/sym_def_app_icon" />

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_weight="0.7"
                        android:text="sanf,cbjkdbvjdkfnashdfkjnsjabsjdmfnvshbgvbvvbuhfbvgkdfbuhvdfgjkfbghsjkvkcbfgmbfhuvgbfgvfsjghsjvknfvfngvbfuygbvjkakhsdjhgvhfjnuyvhjfdnjgnifhg"
                        android:textColor="@color/WhiteColor" />

                </LinearLayout>


                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_marginTop="@dimen/margin_8dp"
                    android:layout_weight="1"
                    android:background="@color/HomeListItem3"

                    android:orientation="horizontal"
                    android:padding="@dimen/padding_3dp"
                    android:weightSum="1">

                    <ImageView
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="0.3"
                        android:src="@android:drawable/sym_def_app_icon" />

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_weight="0.7"
                        android:padding="@dimen/padding_10dp"

                        android:text="awofkldjvugifklgmfhklmfgtnemylktmfedghquafrgmketo"

                        android:textColor="@color/WhiteColor" />

                </LinearLayout>
 <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_marginTop="@dimen/margin_8dp"
                    android:layout_weight="1"
                    android:background="@color/HomeListItem4"
                    android:orientation="horizontal"
                    android:padding="@dimen/padding_3dp"
                    android:weightSum="1">

                    <ImageView
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="0.3"
                        android:padding="@dimen/margin_5dp"
                        android:src="@android:drawable/sym_def_app_icon" />

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_weight="0.7"
                        android:text="flkghoijhfnigksngaugjknnguhfbjvncuyvgijfgyhfnvjfdnvjkayfgnkdfbvhjcvndfighfdmndfiuhvhnfidjghiudfhguifdhgiuhafgijhnfaiifjgnu8idfhbjkfndbguy"
                        android:textColor="@color/WhiteColor" />

                </LinearLayout>


            </LinearLayout>

        </LinearLayout>


    </ScrollView>
</LinearLayout>

【问题讨论】:

  • 使用权重 here 系统来判断它们的比例 (1/1/1) 或 (2/1/1/1),具体取决于那里的视图层次结构

标签: android android-layout


【解决方案1】:

在你的所有三个线性布局中应用这个属性

android:layout_weight="1"

android:layout_height="0dp"

【讨论】:

  • android:layout_weight="0dp" 是错误的,把它改成 android:layout_height="0dp"
【解决方案2】:
<ScrollView .....>
    <LinearLayout android:orientation="vertical"
        android:height="match_parent"
        android:width="match_parent"
       ...>

       <LinearLayout
           android:width="match_parent"
           android:height="0dp"
           android:weight="1"
           ..... >
       </LinearLayout>

       <LinearLayout
           android:width="match_parent"
           android:height="0dp"
           android:weight="1"
           ..... >
       </LinearLayout>

       <LinearLayout
           android:width="match_parent"
           android:height="0dp"
           android:weight="1"
           ..... >
       </LinearLayout>

    </LinearLayout>
</ScrollView>

【讨论】:

    【解决方案3】:

    在 Android 中没有像您这样的限制。但是您可以使用layout_weight 达到相同的高度。

    最初将所有体重设置为 1 并将高度设置为 0dp 。例如:

    <?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:paddingLeft="16dp"
        android:paddingRight="16dp"
        android:orientation="vertical" >
    <Button
            android:layout_width="100dp"
            android:layout_height="0dp"
            android:layout_gravity="right"
            android:text="@string/send" 
     layout_weight="1"/>
        <Button
            android:layout_width="100dp"
            android:layout_height="0dp"
            android:layout_gravity="right"
            android:text="@string/send1" 
     layout_weight="1"/>
        <Button
            android:layout_width="100dp"
            android:layout_height="0dp"
            android:layout_gravity="right"
            android:text="@string/send2"
     layout_weight="1" />
    </LinearLayout>
    

    编辑 1:

    示例图片

    【讨论】:

    • 请发布您的代码。这将有助于发现问题!
    • 检查我的编辑。那是你想要的吗?我改变图像和颜色。检查你的布局是否正确?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    相关资源
    最近更新 更多