如何制作Android视图宽度=(父宽度 - 一些常量)

时间:2015-03-19 12:44:58

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

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

enter image description here

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

enter image description here

这是我目前的布局:

enter image description here

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

如何实现所需的布局?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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