2012-01-09 3 views
1

사용자 지정 ViewGroup에보기를 추가하려고합니다. ViewGroup이 그려 지지만 추가 된 Views는 볼 수 없습니다. LineView (보기를 확장) onDraw() 메서드가 호출되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?사용자 지정보기 그룹에보기 추가

public class TestActivity extends Activity { 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ShapeView shapeView = new ShapeView(this); 
     shapeView.setBackgroundColor(Color.RED); 
     drawContainer = (RelativeLayout)findViewById(R.id.draw_container); 
     drawContainer.addView(shapeView); 
    } 
} 


public class ShapeView extends ViewGroup { 

    private LineView mLineView; 

    public ShapeView (Context context) { 
     super(context); 
     RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(200, 200); 
     this.setLayoutParams(p); 
     mLineView = new LineView(context); 
     this.addView(mLineView); 
    }  
} 

답변

0

어쩌면 잘못되었지만 레이아웃 "main"에 shapeView를 추가하지 않아야합니까? drawContainer 란 무엇입니까? 문서화되지 않고 인스턴스화 된 것을 볼 수 없습니다. main은 상대/선형 레이아웃을 포함한다고 가정합니다. 에 의해

액세스를 :

RelativeLayout rel = (RelativeLayout) findViewById(R.id.container); 

다음

(ID가 귀하의 ID와 일치하도록 변경되는 경우) :

rel.addView(shapeView); 
+0

죄송합니다, 질문에 코드 줄을 붙여 잊었다 . 업데이트 됨. – KcYxA

+0

아니, 괜찮아, 나는 그것이 50/50이라고 생각했다. 좋아, 실제로 뭘 보니? 붉은 광장이 있니? 또는 아무것도 볼 수 있습니까? –

+0

붉은 광장과 그 밖의 것은 볼 수 없습니다. 내 onLayout() 메서드에 무언가를 집어 넣어야한다는 느낌이 들지만, 무엇을 사용했는지, 제대로 코딩하는 방법을 모르겠습니다. – KcYxA

관련 문제