Я не уверен, почему чистый и очевидный способ сделать это еще не был опубликован.Это эффективное решение работает для любого View MyView с известной высотой.
Оберните RelativeLayout
с высотой wrap_content
в FrameLayout:
<!-- width here should constrain RelativeLayout -->
<FrameLayout
android:layout_width="@dimen/my_layout_width"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<MyView
...
android:layout_gravity="bottom" />
</FrameLayout>
Просто обратите внимание, что вид снизуиз FrameLayout будет поверх вашего RelativeLayout
контента, поэтому вам нужно будет добавить отступ в нижней части этого макета, чтобы разместить его.Если вы хотите, чтобы это представление было переменной высоты, вы можете либо добавить подкласс FrameLayout, чтобы добавить заполнение в код, основанный на измеренной высоте представления, либо просто изменить FrameLayout на вертикальное LinearLayout, если вы не беспокоитесь о производительности, то есть это не просмотр списка.пункт, или виды относительно легки.