如何使 Android view width = (parent width - some constant)
How to make Android view width = (parent width - some constant)
我有一个布局,我试图让一个视图填充所有剩余的 space,除了最后的一些 50dp 宽度的图像。当我将第一个视图的宽度设置为 match_parent
时,它占据了整个视图,无论我设置图像的宽度是多少,它都位于屏幕边界之外。这是正在发生的事情:
但我想要这样:(通过将第一个视图的宽度设置为常量来实现,只是为了演示,我绝对不想要它,因为它应该填充一个动态量的宽度)
这是我当前的布局:
问题出在层次结构中头像视图正下方的 LinearLayout (vertical)
处。它占据了正确的 space,但 children 没有按我想要的方式运行。
如何实现所需的布局?
使用 RelativeLayout 进行布局,并在右侧设置中心 TextView 元素 属性 to_rightof ImageView。无论图像的大小如何,textview 都会自动调整其宽度。
看看这个例子。主要思想是为视图设置 android:layout_width="0dp"
和 android:layout_weight="1"
,该视图必须占用所有可用的 space。在我的情况下它是 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。
我有一个布局,我试图让一个视图填充所有剩余的 space,除了最后的一些 50dp 宽度的图像。当我将第一个视图的宽度设置为 match_parent
时,它占据了整个视图,无论我设置图像的宽度是多少,它都位于屏幕边界之外。这是正在发生的事情:
但我想要这样:(通过将第一个视图的宽度设置为常量来实现,只是为了演示,我绝对不想要它,因为它应该填充一个动态量的宽度)
这是我当前的布局:
问题出在层次结构中头像视图正下方的 LinearLayout (vertical)
处。它占据了正确的 space,但 children 没有按我想要的方式运行。
如何实现所需的布局?
使用 RelativeLayout 进行布局,并在右侧设置中心 TextView 元素 属性 to_rightof ImageView。无论图像的大小如何,textview 都会自动调整其宽度。
看看这个例子。主要思想是为视图设置 android:layout_width="0dp"
和 android:layout_weight="1"
,该视图必须占用所有可用的 space。在我的情况下它是 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。