【发布时间】:2019-02-21 05:17:55
【问题描述】:
我试图使标题尽可能具有描述性。
我有一个ConstraintLayout 和两个LinearLayout 孩子,里面有ScrollViews,因为里面有很多东西。每个孩子的权重为 1。布局对工具栏的顶部、底部、左侧和右侧的父级以及顶部的边距都有约束。所以基本上,这个布局就像一个上下滑动的底部工作表。
两个子视图 (LinearLayouts-s) 都可以“扩展”,在这种情况下,另一个子视图将其可见性更改为 gone。
所以当我展开一个布局并隐藏另一个布局时会发生什么,由于某种原因,整个布局的对齐保持在父级的顶部,保留边距,但被切到底部,留下一个空白空间。我希望它移动到屏幕底部就是这种情况。我还添加了app:layout_constraintVertical_bias="1.0",我认为它会处理它。但它不起作用。我会附上图片。
所以我想要实现的是让工作表始终对齐底部。这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?ord_canvas_secondary_color">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar">
<include layout="@layout/merge_screen_container" />
</FrameLayout>
<View
android:id="@+id/dim_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.5"
android:background="@color/ord_black"
android:clickable="true"
android:focusable="true"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar" />
<FilterSheet
android:id="@+id/subscriptions_filter"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginStart="@dimen/dim_8x"
android:layout_marginTop="@dimen/dim_56x"
android:layout_marginEnd="@dimen/dim_8x"
android:layout_marginBottom="@dimen/dim_8x"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar"
app:layout_constraintVertical_bias="1.0" />
</android.support.constraint.ConstraintLayout>
【问题讨论】:
-
app:layout_constraintTop_toBottomOf="@id/toolbar" 删除此行并尝试一次。
-
是的,非常合乎逻辑。但在这种情况下,工作表超出了工具栏。我忘了提到工作表为每个线性布局插入了滚动视图。我将编辑问题。
-
还请发布您的完整 xml 文件代码。
-
@Artipatel 发布了完整的 XML。
标签: android android-constraintlayout