我有一个布局,我试图让视图填充所有剩余的空间,最后除了一些50dp的宽度图像。当我将第一个视图的宽度设置为match_parent
时,它占据了整个视图,无论我设置为图像的宽度,它都被放置在屏幕边界之外。以下是发生的事情:
但是我想要这样:(通过将第一个视图的宽度设置为常量只是为了演示,我绝对不想要,因为它应该填充动态的宽度)
这是我目前的布局:
问题发生在LinearLayout (vertical)
,它位于层次结构中的头像视图下方。它占据了正确的空间,但它的孩子并没有按照我想要的方式行事。
如何实现所需的布局?
答案 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都会自动调整其宽度。