为什么通过getView().getLayoutParams().width设置DialogFragment的宽高没有成功?

getView().getLayoutParams().width = ''


回答:

 Window window = getDialog().getWindow();

WindowManager.LayoutParams attributes = window.getAttributes();

使用这种方式设置


回答:

有几个可能的原因导致您无法通过getView().getLayoutParams().width设置DialogFragment的宽度:

  1. getView()返回的视图可能为null:如果您尝试在DialogFragmentonCreateView()方法之前或之外的时间获取视图,则可能会返回null,因此您无法设置视图的参数。确保在onCreateView()中使用正确的视图。
  2. LayoutParams 可能不是正确的类型:getView().getLayoutParams()方法返回一个ViewGroup.LayoutParams对象,这是ViewGroup的一种通用布局参数类型。然而,具体的布局容器可能使用不同的子类LayoutParams(例如LinearLayout.LayoutParamsFrameLayout.LayoutParams),因此需要使用适当的类型来设置参数。如果您尝试使用错误的参数类型,则可能无法设置宽度和高度。
  3. 没有设置布局参数:如果在设置视图的LayoutParams之前没有为视图设置布局参数,则可能会出现问题。您需要使用getView().setLayoutParams()方法为视图设置参数,然后才能使用getView().getLayoutParams()方法获取它们。
  4. 参数值不正确:最后,您需要确保设置的参数值是正确的。宽度和高度必须为正整数,且单位必须是像素(px)。如果您尝试使用负数或非像素单位,则可能无法正确设置宽度和高度。

总之,确保在正确的时间和正确的方式下获取和设置视图参数,并使用正确的参数类型和值,以确保成功设置DialogFragment的宽度和高度。

以上是 为什么通过getView().getLayoutParams().width设置DialogFragment的宽高没有成功? 的全部内容, 来源链接: utcz.com/p/945011.html

回到顶部