我有一个LinearLayout
垂直方向,我正在尝试向它添加三个子视图。一个视图是一个 50px 高的小视图,只在其中绘制了一个框,第二个视图是单选按钮的水平列表,第三个视图是图表。
如果我最后添加图表,一切都适合屏幕,但如果我先添加图表,它会将所有内容推离屏幕并成为屏幕上的唯一视图。该图是我的一个自定义控件,它希望尽可能大(它的onMeasure
函数只返回提供的宽度和高度),我认为这就是问题所在。但我想保持它尽可能大,并且无论添加的顺序如何,布局都适合视图。
这可能吗?如果是这样,我该如何完成它?最终,我试图将图表放在顶部,将其他两个控件放在其下方,但如果我先添加图表,它会占用整个屏幕。
这是我用来创建视图的代码。这是一项学校作业,我不能为此使用 XML 布局。我被分配做一个控制,我已经完成了。我只是想做一个简单的活动来展示控件。
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.addView(new MovingBox(this));
RadioGroup radioGroup = new RadioGroup(this);
radioGroup.setOrientation(RadioGroup.HORIZONTAL);
radioGroup.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
RadioButton button = new RadioButton(this);
button.setText("Light");
button.setLayoutParams(new RadioGroup.LayoutParams(RadioGroup.LayoutParams.MATCH_PARENT, RadioGroup.LayoutParams.WRAP_CONTENT, 1));
radioGroup.addView(button);
button = new RadioButton(this);
button.setText("Dark");
button.setLayoutParams(new RadioGroup.LayoutParams(RadioGroup.LayoutParams.MATCH_PARENT, RadioGroup.LayoutParams.WRAP_CONTENT, 1));
radioGroup.addView(button);
button = new RadioButton(this);
button.setText("Colorful");
button.setLayoutParams(new RadioGroup.LayoutParams(RadioGroup.LayoutParams.MATCH_PARENT, RadioGroup.LayoutParams.WRAP_CONTENT, 1));
radioGroup.addView(button);
layout.addView(radioGroup);
// If I move these next to lines just below layout.setOrientation(...) it becomes the only thing visible
TweenerControl tw = new TweenerControl(this);
layout.addView(tw);
setContentView(layout);
}
}
最后添加图表:(一切都合适,但我想要顶部的图表)
先加图:(只有图可见)