Añadir botones a la disposición relativa Dinámica o extensión lineal Layout android

Quiero agregar botones a la disposición relativa dinámicamente según el botón y el ancho de la pantalla como se muestra en la imagen. El número de botones no es fijo y el ancho del botón depende del texto que se ajuste al botón. introduzca la descripción de la imagen aquí

Intenté alcanzar esto usando código abajo pero que a no trabajar muy bien como por mi requisito. Alguien puede ayudarme por favor ? Por favor ayúdame a través de esto.

RelativeLayout layout = (RelativeLayout) findViewById(R.id.genre_layout); for(int i=0; i < genreList.size(); i++){ Button btn = new Button(MovieDetailsActivity.this); btn.setText(genreList.get(i).getGenreName()); btn.setPadding(15, 5, 15, 5); btn.setBackgroundColor(Color.parseColor("#FFFFFF")); btn.setBackgroundColor(Color.parseColor("#80333333")); LayoutParams param = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); param.setMargins(5, 5, 5, 5); if (i != 0){ int prevId = genreList.get(i).getGenreId(); param.addRule(RelativeLayout.RIGHT_OF, prevId); } btn.setLayoutParams(param); btn.setId(genreList.get(i).getGenreId()); layout.addView(btn); } 

Prueba esto

 Display display=getWindowManager().getDefaultDisplay(); int width=display.getWidth(); btn.setWidth(width); 

o si tiene dos botones, haga

 Display display=getWindowManager().getDefaultDisplay(); int width=display.getWidth(); btn1.setWidth(width/2); btn2.seTwidth(width/2); 

Actualizar

 LinearLayout.LayoutParams paramz = new LinearLayout.LayoutParams( LayoutParams.MATCH_PARENT, 0dp, 1.0f); 

entonces btn.setLayoutParams(paramz);

Tengo el código para agregar botones dinámicamente al diseño lineal. Consulta si te ayuda https://docs.google.com/document/d/1QA1tAIe601fZT2Dlp1A0qDuLD0U4IqKL3f_Crx1rtkE/edit?usp=sharing

Intente esto para agregar botones dinámicos en relativelayout

  RelativeLayout layout = (RelativeLayout)findViewById(R.id.slidingDrawerContent); RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT ); for (int i=0; i<4; i++) { Button btn = new Button(this); btn.setId(i); btn.setText("some_text"); // lp.addRule(RelativeLayout.RIGHT_OF, <Id>); layout.addView(tv2, lp); } 

Me gustaría sugerir el uso de LinearLayout como lo hizo en su pregunta y dar un Weight .

LinearLayout

Solucioné mi problema usando FlowLayout. Código de ejemplo y referencias están disponibles aquí Su fácil de usar. Gracias a todos por su ayuda.

  • Botones de triángulo diagonal de Android
  • ¿Cómo solucionar este error en Android? Java.net.MalformedURLException: Protocolo no encontrado:
  • Cómo llamar o aparecer fragmento al hacer clic en el botón
  • Android: Hacer el botón holo predeterminado opaco
  • Quiero cambiar el color de un botón por unos segundos que cambiarlo de nuevo
  • Agregar una matriz de botones a un GridView en una aplicación de Android
  • Android: ¿Cómo obtener el botón de flecha?
  • Android - Facebook SDK 3 - Cómo iniciar sesión mediante programación sin LoginButton
  • ¿Cómo activar el botón "Compartir" en la aplicación Android?
  • Cómo crear realmente pequeños botones en android de código?
  • Cómo puedo hacer que mis botones sean más grandes
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.