2

1つの画面に2つのグラフィックを表示しようとしていますが、できません。onClick関数内に1つのグラフィックを表示するコードは次のとおりです。

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

2番目のレイアウトを追加する前に、レイアウトを呼び出しlayout.removeAllViews();て、レイアウト内に別のレイアウトを自由に表示できるようにする必要があります。したがって、最初に削除してから、2番目のレイアウトを追加してみてください。

于 2011-12-05T09:54:11.383 に答える
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を使用してください。mChartViewプログラムで作成し、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);
于 2011-12-05T09:58:52.143 に答える