android.view.ViewGroup $ LayoutParams无法转换为android.widget.LinearLayout $ LayoutParams

时间:2019-07-03 15:34:48

标签: android xml

执行以下操作时会出现异常:

findViewById(R.id.some_container).setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 50)); 

但是当我更改为new LinearLayout.LayoutParams时就可以了。如果LinearLayout.LayoutParamsViewGroup.LayoutParams的子代,那为什么我不能投射?

1 个答案:

答案 0 :(得分:1)

所有LinearLayout也是ViewGroup,但并非所有ViewGroup都是LinearLayout。这就是为什么您不能将ViewGroup投射到LinearLayout

的原因

您可以按照以下步骤从LinearLayout.LayoutParams创建一个ViewGroup.LayoutParams

LinearLayout.LayoutParams params = 
    new LayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 50));

但是,简单的转换是不可能的。