代码之家  ›  专栏  ›  技术社区  ›  Sergey Emeliyanov

在底片中排列布局,以便所有视图都符合预期

  •  0
  • Sergey Emeliyanov  · 技术社区  · 6 年前

    BottomSheetDialogFragment ,它有一些内容和一个蓝色按钮( TextView )在底部。我希望它总是固定在最底层 ,但我无法做到。。大多数时候它都在正确的地方,但有时它看起来有点像下面的截图:

    enter image description here

    如何确保蓝色按钮始终固定在 底片对话框片段 RelativeLayout ,当我试着设置 android:layout_alignParentBottom="true" ,但没有成功。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Khemraj Sharma    6 年前

    只是一个黑客

    • 将底部按钮放在活动/片段中(Bottomsheet的父级)。
    • 把按钮高度等边距放在底板底部。(按钮不能重叠)
    • 关闭底页时使按钮不可见。

        2
  •  1
  •   Sergey Emeliyanov    6 年前

    第一个解决办法是 BottomSheetDialogFragment 展开到全屏,下面是一个如何完成的示例:

    View parent = (View) view.getParent();
    CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) (parent).getLayoutParams();
    CoordinatorLayout.Behavior behavior = params.getBehavior();
    BottomSheetBehavior bottomSheetBehavior = (BottomSheetBehavior) behavior;
    bottomSheetBehavior.setPeekHeight(view.getMeasuredHeight());
    

    然后,我们调整按钮在布局中的位置 底片对话框片段 RelativeLayout 我们可以设置 android:layout_alignParentBottom="true" 底片对话框片段

    另一个解决办法,我认为是 就是把所有的东西都封起来 内部布局 ScrollView . 这样,如果设备的高度不够,内容,包括按钮,将被定位,但可以随时滚动到。