LinearLayout * 元素大小

发布于 2025-01-03 13:19:13 字数 2215 浏览 5 评论 0原文

我有一个 LinearLayout,它可以很好地生成如下内容:

[ 固定图像大小 ] [ 固定图像大小 ] [ 文本占用剩余空间 ]

XML 看起来类似于:

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

    <ImageView
        android:id="@+id/image1"
        android:layout_width="50dp"
        android:layout_height="120dp"
        android:layout_gravity="center_vertical" />

    <ImageView
        android:id="@+id/image2"
        android:layout_width="263dp"
        android:layout_height="150dp"
        android:layout_gravity="center_vertical" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center_vertical"
        android:gravity="center_vertical"
        android:paddingRight="5dip"
        android:textColor="#ffffffff"
        android:textSize="13sp" />

</LinearLayout>

现在我想反转它,有另一个看起来像的视图比如:

[ 文本占用剩余空间 ] [ 固定图像大小 ] [ 固定图像大小 ]

所以我自然地做了一件显而易见的事情:

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center_vertical"
        android:gravity="center_vertical"
        android:paddingRight="5dip"
        android:textColor="#ffffffff"
        android:textSize="13sp" />

    <ImageView
        android:id="@+id/image1"
        android:layout_width="50dp"
        android:layout_height="120dp"
        android:layout_gravity="center_vertical" />

    <ImageView
        android:id="@+id/image2"
        android:layout_width="263dp"
        android:layout_height="150dp"
        android:layout_gravity="center_vertical" />

</LinearLayout>

但在这种情况下,文本只是覆盖整个宽度,因为宽度是 fill_parent 。但我不想要它要么包装内容。

有什么简单的方法可以做到这一点吗?

I have a LinearLayout that works great to produce something like:

[ fixed image size ] [ fixed image size ] [ text takes up the space that is left ]

The XML looks similar to:

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

    <ImageView
        android:id="@+id/image1"
        android:layout_width="50dp"
        android:layout_height="120dp"
        android:layout_gravity="center_vertical" />

    <ImageView
        android:id="@+id/image2"
        android:layout_width="263dp"
        android:layout_height="150dp"
        android:layout_gravity="center_vertical" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center_vertical"
        android:gravity="center_vertical"
        android:paddingRight="5dip"
        android:textColor="#ffffffff"
        android:textSize="13sp" />

</LinearLayout>

Now I want to reverse it, have another view that looks like:

[ text takes up space that is left ] [ fixed image size ] [ fixed image size ]

So I naturally did the obvious thing which is:

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center_vertical"
        android:gravity="center_vertical"
        android:paddingRight="5dip"
        android:textColor="#ffffffff"
        android:textSize="13sp" />

    <ImageView
        android:id="@+id/image1"
        android:layout_width="50dp"
        android:layout_height="120dp"
        android:layout_gravity="center_vertical" />

    <ImageView
        android:id="@+id/image2"
        android:layout_width="263dp"
        android:layout_height="150dp"
        android:layout_gravity="center_vertical" />

</LinearLayout>

But in this case, the text just goes over the entire width, because width is fill_parent.. but I don't want it to wrap_content either.

Is there any easy way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我爱人 2025-01-10 13:19:13

将textview1的宽度设置为0dp并添加layout_weight元素= 1。

Set textview1's width to 0dp and add a layout_weight element = 1.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文