2013-03-06 3 views
-2

TableLayout으로 계산기를 만들고 싶습니다. GridLayout과 잘 어울리는 것을 알고 있지만 TableLayout은 필수입니다.이 디자인을 얻으려고하면 버튼이 사라집니다.

나는이 디자인을 얻으려고 :

enter image description here

당신이 seae으로, 숫자 (1 ~ 9)를 연결 및 분리 버튼을 사용하여 동일한 크기와 순서에 있습니다. 하지만, 내 현재 디자인에서 그 같은 :

하지만 버튼과 같은 내 디자인 모양의이 : 내 버튼을하기 위해

LinearLayout layout = new LinearLayout(this); 
layout.setOrientation(LinearLayout.VERTICAL); 
layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT)); 

TextView titleView = new TextView(this); 
titleView.setText("Table Layout"); 
titleView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
layout.addView(titleView); 


LinearLayout layout2 = new LinearLayout(this); 
layout2.setOrientation(LinearLayout.HORIZONTAL); 
layout2.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT)); 




Button btnConnect = new Button(this); 
btnConnect.setText("Connect"); 
btnConnect.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1)); 
layout2.addView(btnConnect); 

TextView titleViewSpace = new TextView(this); 
titleViewSpace.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1)); 
layout2.addView(titleViewSpace); 


Button btnDisconnect = new Button(this); 
btnDisconnect.setText("Disconnect"); 
btnDisconnect.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1)); 
layout2.addView(btnDisconnect); 

layout.addView(layout2); 

TableLayout tblLayout = new TableLayout(this); 
tblLayout.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT,TableLayout.LayoutParams.MATCH_PARENT)); 
TableRow tblrow = null; 


for (int i = 1; i <= 9; i++) { 
    if (i % 3 == 1) { 
     tblrow = new TableRow(this); 
     tblLayout.addView(tblrow); 

    } 
    Button b = new Button(this); 
    b.setText("" + i); 
    tblrow.addView(b); 
} 




TableRow tr = new TableRow(this); 
Button btnZero = new Button(this); 
btnZero.setText("0"); 
Button btnHash = new Button(this); 
btnHash.setText("#"); 
Button btnStar = new Button(this); 
btnStar.setText("*"); 


tr.addView(btnZero); 
tr.addView(btnHash); 
tr.addView(btnStar); 


tblLayout.addView(tr); 
layout.addView(tblLayout); 


setContentView(layout); 

: enter image description here

내 코드입니다 연결 및 연결 해제 버튼을 사용하여 동일한 순서와 크기로 표시

루프에 버튼을 만들 때 간단히 수행합니다.

,
for (int i = 1; i <= 9; i++) { 
     if (i % 3 == 1) { 
      tblrow = new TableRow(this); 
      tblLayout.addView(tblrow); 

     } 
     Button b = new Button(this); 
     b.setText("" + i); 
     b.setLayoutParams(new LayoutParams(0,LayoutParams.WRAP_CONTENT,1)); 
     tblrow.addView(b); 
    } 

하지만 이것의 LayoutParams 넣을 때

b.setLayoutParams(new LayoutParams(0,LayoutParams.WRAP_CONTENT,1)); 

버튼 (1-9)의 화면을 disappered된다. 왜? 이 문제로 어떻게 극복 할 수 있습니까? 어떻게하면 같은 화면에서 같은 버튼을 만들 수 있습니까?

+0

가 왜 그렇게 힘든 생활을하고 당신이보기 프로그램 동맹을 생성, 왜'xml' 파일? – Daler

+0

이 과제에 반드시 있어야하기 때문입니다. – abc

+0

내 조언은 XML에서이 뷰를 먼저 만든 다음 코딩 스타일에 올바른 속성을 복사하여 붙여 넣는 것입니다. 이에 따라 버튼을 늘리려면'LinearLayout의 weightSum' 속성도 넣어야합니다. – Daler

답변

0

이 내가 필요한 모든입니다 :

tblLayout.setStretchAllColumns(true); 
관련 문제