android - 设置 LinearLayout 相对于同一容器中其他 LinearLayout 的高度

标签 android listview android-linearlayout

我是 Android 编程的新手,我正在尝试设置一个包含四个组件的 LinearLayout。

<img src="https://i.imgur.com/jrkbH0F.png" />

目前看起来是这样的:

<img src="https://i.imgur.com/yxSaYOS.png" />

XML:

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

    <LinearLayout
        android:orientation="vertical"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_width="wrap_content"
        android:gravity="center"
        android:id="@+id/linearLayoutLeft">

            <ImageView
                android:id="@+id/buildMonsterIcon"
                android:layout_width="wrap_content"
                android:layout_height="200dp"
                android:paddingBottom="5dp"
                android:paddingRight="15dp"
                android:paddingTop="15dp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/buildMonsterName"
                android:layout_marginBottom="10dp"
                android:paddingRight="10dp" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:id="@+id/linearLayoutRight">

            <android.support.v7.widget.Toolbar
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:theme="?attr/actionBarTabBarStyle"
                android:id="@+id/buildToolbar">
                </android.support.v7.widget.Toolbar>

            <ListView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/buildList"
                android:paddingRight="5dp" />

        </LinearLayout>

</LinearLayout>

这里的问题是,我的 ListView 目前有 五个 项目(比可见的三个项目多)。

我唯一的办法是将 ImageView 的高度设置为固定值(即 200dp),然后它看起来像这样:

Screenshot

如何设置左边LinearLayout的高度等于右边的?

非常感谢!

最佳答案

您需要为左右线性布局设置 weight 属性值为 1 并将宽度设置为 0dp 并更改weightsum 到 2 或者你也可以删除它

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

    <LinearLayout
        android:orientation="vertical"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:gravity="center"
        android:id="@+id/linearLayoutLeft">

            <ImageView
                android:id="@+id/buildMonsterIcon"
                android:layout_width="wrap_content"
                android:layout_height="200dp"
                android:paddingBottom="5dp"
                android:paddingRight="15dp"
                android:paddingTop="15dp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/buildMonsterName"
                android:layout_marginBottom="10dp"
                android:paddingRight="10dp" />

    </LinearLayout>

    <LinearLayout
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:id="@+id/linearLayoutRight">

            <android.support.v7.widget.Toolbar
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:theme="?attr/actionBarTabBarStyle"
                android:id="@+id/buildToolbar">
                </android.support.v7.widget.Toolbar>

            <ListView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/buildList"
                android:paddingRight="5dp" />

        </LinearLayout>

</LinearLayout>

关于android - 设置 LinearLayout 相对于同一容器中其他 LinearLayout 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50356889/

相关文章:

android - 我如何调用驻留在 ListView 项目中的按钮的 onclick 监听器

ios - 无法从 for 循环调用方法

android - 具有 wrap_content 宽度的元素占据父元素的全宽

android - 强制 View 至少占据其父级高度的一定百分比

android - 在 LinearLayout 中设置 EditText 宽度取决于 TextView 宽度

Android admob 加载广告失败

Android 无法查找支持版本 27.0.0 的窗口

java - 适用于 iOS 和 Android 平台的跨平台 appium 代码

java - 复选框验证,仅获取复选框

php - 从 MySQL 获取数据并使用 JSON 在 ListView 中显示