我正在继承 HorizontalScrollView(这是一个 FrameLayout)并以编程方式向它添加一个 RelativeLayout。
FrameLayout 正确填充父视图,但内部的 RelativeLayout 不显示。
MainActivity::OnCreate()
setContentView(R.layout.activity_main);
CustomHorizontalScrollView custom = new CustomHorizontalScrollView(this);
ViewGroup contentView = (ViewGroup) findViewById(R.id.content);
contentView.addView(custom,new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 180));
CustomHorizontalScrollView::Constructor()
this.setBackgroundColor(Color.MAGENTA);
relativeLayout = new RelativeLayout(context);
relativeLayout.setBackgroundColor(Color.BLACK);
this.addView(relativeLayout, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
结果:
RelativeLayout 应该是黑色的并且应该填充父级,但不是。
奇怪的是,如果我使用 MATCH_PARENT 以像素为单位指定宽度和高度,则会出现 RelativeLayout。
this.addView(relativeLayout, new FrameLayout.LayoutParams(90, 90));
这是否意味着在以编程方式将 RelativeLayout 添加到 FrameLayout 时我不能使用 MATCH_PARENT?还是我错过了什么?或者也许 HorizontalScrollView 只支持有一个固定宽度和高度的孩子?