2011-12-05 15 views
2

2つのグラフィックを1つの画面に表示しようとしていますが、できません。ここでコードは、私はonClick関数内の1つのグラフィックを示しています:2つのグラフィックを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; 

任意のアイデア??

ありがとうございました!

+0

あなたはどのような問題に直面していますか?エラーログを共有する –

+0

このコードでは問題はありませんが、たとえば、この行を追加して1つの画面に2つのグラフィックを表示しようとすると、 layout.addView(mChartView、new LayoutParams(LayoutParams.WRAP_CONTENT、LayoutParams .WRAP_CONTENT)); 私はそれを実行すると、アプリケーションが終了します! 1つの画面に複数のグラフィックを表示するにはどうすればいいですか? – Lucia

+0

同じビューを2回追加することはできません。異なるIDを持つ2つの異なるインスタンスが必要です。回答を参照してください – Guillaume

答えて

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); 
+0

これで、エラーは表示されませんが、画面に2つのグラフィックスが表示されません。私はちょうど1つを見る!ありがとう! – Lucia

+0

相対的なレイアウトを試してみました。私は答えを編集しました。 – Guillaume

+0

このように、私は2つのグラフィックスをもう一方の上に表示し、ズームと "再生"を行うことができます。他の静的に見える!私はあなたが私に与えた答えで方法を見つけようとしていますが、もしあなたがもっとアイディアを持っていれば... :-) thx – Lucia

1

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

+0

同時に2つのグラフィックをどのように表示しますか?これは可能ですか?ありがとうございます! – Lucia

+0

同時に2つのレイアウトを表示する場合は、両方のコンテナを分離するために作成する必要があります。同時に、2つのレイアウトを重ねて表示することはできないためです。 –

関連する問題