2015-01-24 7 views
0

나는 응용 프로그램을 실행할 때 문제는, 버튼이 다른시 하나 생성됩니다 RelativelayoutJava 코드를 사용하여 Relativelayout 내부에 다른 버튼을 어떻게 만들 수 있습니까?

 <RelativeLayout 
     android:id="@+id/layout_productos" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     > 
     </RelativeLayout> 

안에 자바 코드

   Relativelayout rl = (Relativelayout) findById(R.id.layout_productos); 
       ... 


       JSONArray jsonArray = new JSONArray(tmp.getString("productos")); 
       Button bt[] = new Button[jsonArray.length()]; 

       for (int i = 0; i < jsonArray.length(); i ++){ 
        final float scale = getResources().getDisplayMetrics().density; 
        int padding_40dp = (int) (40 * scale + 0.5f); 

        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, padding_40dp); 
        bt[i] = new Button(DetalleServicioActivity.this); 
        bt[i].setText(jsonArray.getJSONObject(i).getString("nombre")); 
        bt[i].setTag(jsonArray.getJSONObject(i).getString("id_producto")); 
        bt[i].setTextColor(Color.parseColor("#FFFFFF")); 
        bt[i].setBackgroundColor(Color.parseColor("#D8D8D8")); 
        bt[i].setLayoutParams(params); 
        bt[i].setEnabled(false); 
        bt[i].setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 

         } 
        }); 
        rl.addView(bt[i]); 

       } 

를 사용하여 JSON에서 많은 버튼을 만드는 오전.

2 button (Chilena and cuenta rut)

그러나 나는 그들이 다른과 하나의 옆에있는 것을 필요 라인 점프의 화면 가장자리가

내가 그렇게 할 수있는 방법

를 계속 접근하면?

+0

(이것은 표준 안드로이드 구성 요소가 아닙니다 - 그것은 구글 검색) 당신은 대신 FlowLayout가를 고려하는 것이 좋습니다 – Karakuri

답변

1

규칙을 추가해야 규칙을 서로 나란히 정렬 할 수 있습니다. 규칙은 귀하에게 달려 있습니다.

params.addRule(RelativeLayout.RIGHT_OF, previousViewId); 
+0

하지만 버튼이 화면 가장자리를 터치하면, 무슨 일이 생긴? – cheloncio

+0

relativelayout을 사용하고 싶다면 이것을 고려하고 아래의 규칙과 같은 다른 규칙을 추가해야합니다. 그러나 이것은 좋은 생각이 아닙니다. 대신에 옵션이 엇갈린 recyclerview를 사용할 수 있습니다. 그것은 당신을위한 좋은 해결책이 될 것입니다. –