【问题标题】:How to make Android view width = (parent width - some constant)如何使Android视图宽度=(父宽度-一些常数)
【发布时间】:2015-05-22 14:07:58
【问题描述】:

我有一个布局,我试图让一个视图填充所有剩余空间,除了最后一些 50dp 宽度的图像。当我将第一个视图的宽度设置为match_parent 时,它占据了整个视图,而无论我设置为图像的宽度,它都位于屏幕边界之外。这是正在发生的事情:

但我希望它是这样的:(通过将第一个视图的宽度设置为常数来实现,只是为了演示,我绝对不想要它,因为它应该填充动态量的宽度)

这是我目前的布局:

问题出在LinearLayout (vertical),它位于层次结构中头像视图的正下方。它占据了正确的空间,但它的孩子们没有按照我想要的方式行事。

我怎样才能达到想要的布局?

【问题讨论】:

  • 你是如何设计你的布局的?你可以使用 wights 吗?发布布局
  • 你使用的是什么类型的布局?
  • @Diva 我已经更新了问题。
  • @ChadiAbouSleiman 我已经更新了问题。

标签: android android-layout layout android-4.0-ice-cream-sandwich


【解决方案1】:

使用RelativeLayout 进行布局,并在右侧设置中心TextView 元素属性to_rightof ImageView。无论图像大小如何,textview 都会自动调整其宽度。

【讨论】:

    【解决方案2】:

    看看这个例子。主要思想是为必须占用所有可用空间的视图设置android:layout_width="0dp"android:layout_weight="1"。在我的情况下,它是 TextView 在你的情况下,它可以是另一个布局或其他任何东西。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:orientation="horizontal"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            ....
            />
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            ....
            />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            ...
            />
    
    </LinearLayout>
    

    更新

    更多信息可以在这里找到question

    【讨论】:

    • 成功了!将 textview 的 layout_weight 设置为 1 正是我所需要的。谢谢你的例子!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2021-03-31
    相关资源
    最近更新 更多