2

我试图在一个屏幕上显示两个图形,但我做不到。这是我在 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;

任何想法??

非常感谢!

4

2 回答 2

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;

那应该行得通。确保您的 id 上有不同的 id mChartView- 如果您以编程方式创建它们而不是从 XML 布局中膨胀,那么您也需要以编程方式设置 id:

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

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

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);
于 2011-12-05T09:58:52.143 回答
1

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

于 2011-12-05T09:54:11.383 回答