为什么通过getView().getLayoutParams().width设置DialogFragment的宽高没有成功?
getView().getLayoutParams().width = ''
回答:
Window window = getDialog().getWindow(); WindowManager.LayoutParams attributes = window.getAttributes();
使用这种方式设置
回答:
有几个可能的原因导致您无法通过getView().getLayoutParams().width
设置DialogFragment
的宽度:
getView()
返回的视图可能为null
:如果您尝试在DialogFragment
的onCreateView()
方法之前或之外的时间获取视图,则可能会返回null
,因此您无法设置视图的参数。确保在onCreateView()
中使用正确的视图。LayoutParams
可能不是正确的类型:getView().getLayoutParams()
方法返回一个ViewGroup.LayoutParams
对象,这是ViewGroup
的一种通用布局参数类型。然而,具体的布局容器可能使用不同的子类LayoutParams
(例如LinearLayout.LayoutParams
或FrameLayout.LayoutParams
),因此需要使用适当的类型来设置参数。如果您尝试使用错误的参数类型,则可能无法设置宽度和高度。- 没有设置布局参数:如果在设置视图的
LayoutParams
之前没有为视图设置布局参数,则可能会出现问题。您需要使用getView().setLayoutParams()
方法为视图设置参数,然后才能使用getView().getLayoutParams()
方法获取它们。 - 参数值不正确:最后,您需要确保设置的参数值是正确的。宽度和高度必须为正整数,且单位必须是像素(px)。如果您尝试使用负数或非像素单位,则可能无法正确设置宽度和高度。
总之,确保在正确的时间和正确的方式下获取和设置视图参数,并使用正确的参数类型和值,以确保成功设置DialogFragment的宽度和高度。
以上是 为什么通过getView().getLayoutParams().width设置DialogFragment的宽高没有成功? 的全部内容, 来源链接: utcz.com/p/945011.html