在一些Activity里面我有Button,它打开Dialog(在pic上标记为Fragment)。
在这个Dialog中我有一些其他的Button和EditText。 默认情况下,焦点设置为EditText。
问题是,当对话框打开时,它没有完全显示。按钮隐藏在屏幕后面(图片上的屏幕和隐藏部分),所以我必须向上滚动才能看到按钮。
我试图禁用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等。我删除了它们,只留下像线性/相对布局这样重要的一个。
答案 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%。