LayoutParams使用什么单位?

我正在使用线性布局,并希望设置视图的最大高度。 在“正常”情况下,我希望视图使用“wrap_content”。 然而,有时这种情况可能会将布局推向不合适的大小。 发生这种情况时,我想将高度限制在最大300dp。

当布局中的列表超过4个列表项目时,我使用以下设置了视图的大小:

LinearLayout listLayout = (LinearLayout) dialog.findViewById(R.id.listLayout); if(list.size() > 4){ LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 300); listLayout.setLayoutParams(params); } 

审阅文档使我不知道应用的度量单位。 这种情况下的度量单位是多less(dp,sp,px,…)?

运行testing,甚至将值设置为100具有超过所需高度的列表。

请指教

Solutions Collecting From Web of "LayoutParams使用什么单位?"

根据你链接的文档:像素。 看到这个function

宽度,MATCH_PARENT,WRAP_CONTENT或固定大小(以像素为单位)

即使您使用的函数没有任何明确的文档,也暗示它使用与最多参数相同的文档。 函数本身可能看起来像:

 LinearLayout.LayoutParams(int width, int height) { this(width, height, /*some default value*/); } 

即它只是调用默认值的3参数版本。

正如David所说,通过代码设置LayoutParams是以像素为单位设置的。 您可以使用此线程中的代码将所需的dp转换为px。