对话框部分隐藏

时间:2018-01-19 14:38:36

标签: android android-layout android-xml

在一些Activity里面我有Button,它打开Dialog(在pic上标记为Fragment)。

在这个Dialog中我有一些其他的Button和EditText。 默认情况下,焦点设置为EditText。 Device screen

问题是,当对话框打开时,它没有完全显示。按钮隐藏在屏幕后面(图片上的屏幕和隐藏部分),所以我必须向上滚动才能看到按钮。

我试图禁用EditText焦点,尝试将焦点设置为Button,但Dialog仍未完全显示。

有什么方法可以强制Dialog完全打开?

看来,Dialog正好覆盖了屏幕的一半。如果我内部没有很多元素,它会完全显示,如果我这样做 - 我必须滚动。

UPD: My Dialog使用具有以下结构的自定义XML:

(min.age <- df %>% 
    group_by(id) %>% 
    summarise(min.age = ifelse(all(is.na(age)),NA,min(age, na.rm = T))))
# A tibble: 2 x 2
     id min.age
  <dbl>   <dbl>
1     1     7.8
2     2      NA

P.S。结构很复杂,因为我有很多其他元素,如Buttons,Text等。我删除了它们,只留下像线性/相对布局这样重要的一个。

1 个答案:

答案 0 :(得分:0)

好的,我已经弄清楚了。

通过布局定义对话框的高度是不可能的,所以我必须在代码中进行。

以下是代码段:

   DisplayMetrics displayMetrics = getActivity().getResources().getDisplayMetrics();
    int height = displayMetrics.heightPixels;
    int maxHeight = (int) (height*0.75);
    final BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from((View) view.getParent());
    bottomSheetBehavior.setPeekHeight(maxHeight);

现在,如果需要,对话框可以占据​​屏幕高度的75%。