2011-12-05 4 views
2

한 화면에 두 개의 그래픽을 표시하려고했지만 할 수 없습니다. 내가 온 클릭 함수 내에서 하나의 그래픽을 보여 곳 여기 코드는 다음과 같습니다한 화면에 두 개의 그래픽이 있습니다.

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

어떤 문제가 있습니까? ??? layout.addView (mChartView, 새의 LayoutParams (LayoutParams.WRAP_CONTENT,의 LayoutParams : 나는 어떤 문제에 직면하지만, 내가 한 화면에 두 개의 그래픽을 보여주기 위해이 줄을 추가하려고 예를 들어 만약 아니에요이 코드 공유 오류 로그 –

+0

.WRAP_CONTENT)); 앱을 실행하면 앱이 종료됩니다. 한 화면에 두 개 이상의 그래픽을 표시하려면 어떻게합니까 ?? – Lucia

+0

동일한보기를 두 번 추가 할 수 없으면 ID가 다른 두 개의 다른 인스턴스가 필요합니다. 내 대답 – 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

이걸로, 나는 오류가 없지만 화면에 두 개의 그래픽이 보이지 않습니다. 나는 단지 하나를 본다! 정말 고마워! – Lucia

+0

상대 레이아웃을 사용해 보았습니다. 대답을 편집했습니다. – Guillaume

+0

이렇게 두 그래픽을 얻었습니다. 하나는 다른 그래픽으로, 하나는 확대/축소하고 "재생"할 수 있습니다. 다른 정적 정적! 나는 당신이 내게 준 답을 가지고 길을 찾으려하지만, 더 많은 아이디어가 있다면 ...-) thx – Lucia

1

두 번째 레이아웃을 추가하기 전에 layout.removeAllViews();을 호출해야 레이아웃에서 다른 레이아웃을 자유롭게 보여줄 수 있습니다. 따라서 먼저 제거한 다음 두 번째 레이아웃을 추가하십시오.

+0

을 참조하십시오. 동시에 두 개의 그래픽을 어떻게 표시합니까? 이것이 가능합니까? 대단히 감사합니다! – Lucia

+0

두 개의 레이아웃을 동시에 표시하려면 두 레이아웃을 모두 별도의 컨테이너로 만들어야합니다. 동시에 두 개의 레이아웃을 다른 레이아웃보다 겹쳐서 표시 할 수 없기 때문입니다. –

관련 문제