2012-06-30 5 views
0

프로그래밍 방식으로 LinearLayout을 만들고이 레이아웃에 3 개의 버튼을 추가하고 있지만 다른 하나의 버튼 위에 하나씩 보여줍니다.LinearLayout에 프로그래밍 방식으로 3 개의 버튼 추가

버튼을 어떻게 표시 할 수 있습니까?

.. 주위 읽기 나는 아마 내가의 LayoutParams을 설정해야한다는 것을 이해하지만

내가이 함께 해봤지만 트릭을하지 않았다 어떻게 .. 알아 냈하지 않았다

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
      ViewGroup.LayoutParams.MATCH_PARENT, 
      ViewGroup.LayoutParams.MATCH_PARENT 
); 
ll.addView(b1, layoutParams); 
ll.addView(b2, layoutParams); 
ll.addView(b3, layoutParams); 

도움 주셔서 감사합니다.

편집 :

은 아마 좀 더 세부 사항을 추가 할 필요가 있었다.

레이아웃에도 다른 요소가 있지만 문제는 없지만 버튼에 대한 추가 레이아웃을 만들었습니다.

이제 버튼 라인에 있지만 서로 다른 폭 .. :/

나는이 함께 시도했지만 도움이되지 않았다 ..

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
      ViewGroup.LayoutParams.MATCH_PARENT, 
      ViewGroup.LayoutParams.WRAP_CONTENT, 
      1f 
); 
+0

이봐. 나는 너와 비슷한 것을하려고 노력하고 있는데, 나는 어떤 문제가있다. 이 솔루션을 살펴보고 무엇을했는지 확인했지만 몇 가지 이유 때문에 화면의 전체 너비를 차지하고 동일한 행에 나타나지 않는 4 개의 큰 버튼을 얻게되었습니다. 너는 내가 너가 뭘 잘못하고 있는지 보여 줄 수 있다고 생각하니? http://pastebin.com/26cTEqhg 감사합니다. – MasterGberry

답변

3
ll.setOrientation(LinearLayout.HORIZONTAL); 

가로줄 정렬로 단추를 설정할 수 있습니다.

그러나 세 개의 버튼 모두에 균형 잡힌 공간을 제공하십시오. Button 개체 3 개 모두에 대해 weight 속성을 1으로 설정해야합니다.

편집 :

모든 버튼에 대해이 작업을 수행합니다.

LinearLayout.LayoutParams params = button.getLayoutParams(); 
params.weight = 1; 
button.setLayoutParams(params); 

모든 버튼의 무게를 설정합니다.

감사합니다, Aqif 하미드

+0

네, 맞습니다. 이제는 내 버튼이 줄 지어 있지만 서로 다른 너비입니다. 무게 속성을 조정하려면 어떻게해야합니까? – Enrichman

+0

android : layout_weight = "1"' –

+0

어떻게하면 이것을 프로 그램 방식으로 할 수 있습니까? – Enrichman

0

모든 MATCH_PARENT은의 LayoutParams을 가져야 한 폭 또는 높이 .WRAP_CONTENT

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
      ViewGroup.LayoutParams.MATCH_PARENT, 
      ViewGroup.LayoutParams.WRAP_CONTENT 
2

(LinearLayout을 방향에 따라 적어도 하나)이 시도 :

ll.setOrientation(LinearLayout.HORIZONTAL); 
0

그것을 시도 :

LinearLayout gvDivisao = (LinearLayout) findViewById(R.id.gvDivisao); 
    LayoutInflater inflater = getLayoutInflater(); 
    LayoutParams btDivLayoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f); 

    Button btDivA = (Button)inflater.inflate(R.layout.button_divisao, null); 
    btDivA.setText("A"); 
    gvDivisao.addView(btDivA, btDivLayoutParams); 
관련 문제