2014-07-14 4 views
0

다음과 같은 몇 가지 방법으로 버튼 목록을 만듭니다. 그것은 잘 작동하고 버튼을 만듭니다.동적으로 버튼을 생성합니다.

public void CreateButton(int i) { 
    LinearLayout btnLayout = (LinearLayout)findViewById(R.id.btnLayout); 
    Button btn = new Button(this); 

    btn.setId(i); 
    btn.setText(String.valueOf(i+1)); 
    btnLayout.addView(btn); 
} 

그러나 생성 된 각각의 버튼은 폭 화면을 피팅하고, 나는 그것이 나란히 한 줄에 두 개의 버튼을 측면을 유지하려는 것이다. 나는 절반이를 사용하여 화면 크기 버튼을 설정 관리 :

int displaywidth= getResources().getDisplayMetrics().widthPixels; 
btn.setLayoutParams(new LayoutParams((int)(displaywidth/2), LayoutParams.WRAP_CONTENT)); 

그것은 절반 화면의 크기로 버튼의 폭을 만드는,하지만 나는, 나란히 배치하는 방법을 알아낼 수 없습니다. 어떤 도움을 주셔서 감사합니다.

답변

0

horizontal으로 변경하십시오.

<LinearLayout 
... 
    android:orientation="horizontal" 
... > 
    ... 
</LinearLayout> 

만 주 veritical 레이아웃의 하나는 수평 LinearLayout의이 버튼 페어를 개최 할 수있는 여러 나란히 버튼을 유지하는 것입니다 LinearLayout 및 중 둥지를하거나 다른 레이아웃을 사용하는 경우, 예 : RelativeLayout을 입력하여 원하는 결과를 얻으십시오.

+1

고마워요. 저는 주 'LinearLayout'을 수직으로 유지하고 각 루프에 수평 방향 레이아웃을 추가하고 두 개의 버튼을 각각 래핑하는 데 사용했습니다. 그것은 매력처럼 작동했습니다 .... 다시 한번 감사드립니다! – LcSalazar

0

LinearLayout의 weight 속성을 사용해보십시오. 각 행은 두 개의 버튼을 원하는 경우 각 버튼의 LinearLayout에

android:weightSum="1" 

android:layout_weight="0.5" 

를 제공하거나

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
         LayoutParams.MATCH_PARENT, 
         LayoutParams.MATCH_PARENT, xf); 

x로 코드에서 동적으로 무게를 설정할 수 있습니다 버튼의 레이아웃 가중치의 부동 소수점 값을 나타냅니다. 레이아웃 무게에 대한 자세한 내용은 http://developer.android.com/guide/topics/ui/layout/linear.html

0

문제를 해결하는 한 가지 방법은 무게와 너비를 사용하는 것입니다. 선형 배치가 가로 방향인지 확인하십시오. 그런 다음 Layout_params를 사용하여 너비를 "Wrap_Content"로 설정하고 무게를 "1"로 설정하십시오. 그러면 둘 다 자동으로 동일한 공간을 차지합니다.

관련 문제