一个屏幕中有两个图形

时间:2011-12-05 09:45:25

标签: android android-layout achartengine

我正试图在一个屏幕上显示两个图形,但我无法做到。这是代码,我在onClick函数中显示一个图形:

case R.id.graphs:
            GraphicalView mChartView = new Niveau().execute(this);
            LinearLayout layout = (LinearLayout) findViewById(R.id.graph);
            layout.removeAllViews();
            layout.addView(mChartView, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
            break;

任何想法??

非常感谢!

2 个答案:

答案 0 :(得分:1)

在添加第二个布局之前,您必须调用layout.removeAllViews();,以便您的布局现在可以在其中显示另一个布局。因此,首先尝试删除,然后添加第二个布局。

答案 1 :(得分:1)

case R.id.graphs:
        GraphicalView mChartView1 = new Niveau().execute(this);
        GraphicalView mChartView2 = //  another chartView creation
        LinearLayout layout = (LinearLayout) findViewById(R.id.graph);
        layout.removeAllViews();
        layout.addView(mChartView1, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        layout.addView(mChartView2, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        break;

那应该有用。确保mChartView上有不同的ID - 如果以编程方式创建它们而不是从XML布局中填充,则需要以编程方式设置id:

mChartView1.setId(1);
mChartView2.setId(2);

此外,RelativeLayout可能会在布局和定位方面为您提供更多自定义。然后,您需要在布局参数中设置相对位置:

RelativeLayout layout = (RelativeLayout) findViewById(R.id.graph);
....
RelativeLayout.LayoutParams paramsForChart2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
paramsForChart2.addRule(RelativeLayout.RIGHT_OF, mChartView1.getId());
layout.addView(mChartView2, paramsForChart2);