Android Studio最新版为何不显示match_parent选项?
match_parent选项消失的解答 嗨,这绝对不是Bug,也不是match_parent被弃用了——本质是新版Android Studio的布局编辑器和ConstraintLayout的适配逻辑导致的,我来给你掰扯清楚:
为什么可视化编辑器里找不到
match_parent?
现在新版Android Studio创建布局时,默认会用ConstraintLayout作为根布局。而ConstraintLayout的设计逻辑里,更推荐使用match_constraint(对应数值0dp)来实现“填充父布局”的效果——只要你给控件添加上对应的约束(比如左贴父布局左边缘、右贴父布局右边缘),0dp就会自动拉伸填满可用空间,和match_parent的表现一致。为了引导开发者正确使用ConstraintLayout的特性,编辑器的可视化面板就默认隐藏了match_parent选项。手动写
match_parent为什么能生效?
放心,match_parent从来没被Android系统废弃,它和旧版的fill_parent是完全等价的。不管你用什么布局,手动在XML里输入android:layout_height="match_parent"都是合法的,系统会正常解析并生效,只是编辑器的可视化选项没把它列出来而已。该怎么选?
如果你用的是ConstraintLayout,更建议用match_constraint(0dp)+ 约束的方式,这能更好地发挥ConstraintLayout的灵活布局能力;如果是LinearLayout、RelativeLayout这类传统布局,match_parent会正常出现在编辑器的选项列表里。要是你实在想在ConstraintLayout的可视化面板里选match_parent,可以先临时把根布局换成LinearLayout,选完再切回ConstraintLayout,不过其实直接手动写XML反而更高效~
内容的提问来源于stack exchange,提问作者Arnaud Denoyelle

