RelativeLayout devuelve LinearLayout LayoutParams

Aquí hay un fragmento de mi xml de diseño que define mi RelativeLayout.

<RelativeLayout android:id="@+id/npvirrButtons" android:layout_width="match_parent" android:layout_height="0dp" > <Button android:id="@+id/buttonNPVLabel" android:layout_marginLeft="20dp" android:layout_alignParentLeft="true" android:layout_width="wrap_content" android:layout_height="match_parent" /> <Button android:id="@+id/buttonIRR_NFV" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="match_parent" /> </RelativeLayout> 

Aquí es donde guardo la referencia a ella.

 this.npvirrButtons = (RelativeLayout)this.findViewById(R.id.npvirrButtons); 

Entonces más adelante cuando intento cambiar la altura de 0dp a wrap_content , tomo los params de la disposición como esto:

 RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)this.npvirrButtons.getLayoutParams(); 

Pero recibo una excepción lanzada:

 java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams at com.mydomain.myapp.MyActivity.calculateIRR(MyActivity.java:564) 

¿Por qué mi RelativeLayout devuelve un objeto LinearLayout params?

getLayoutParams() devuelve el LayoutParameters actual de la vista de acuerdo con su padre. Por lo tanto, buttonIRR_NFV devolverá RelativeLayout.LayoutParameter .

Piense de esta manera: getLayoutParams() es un método que usted llama para alterar la posición de la vista actual en su contenedor. Si desea modificar la forma en que el diseño de uno de sus hijos, usted tiene que obtener su LayoutParameters en su lugar.

  • Configuración de vistas de forma dinámica con la configuración de LayoutParams.addRule en la última posición de la vista
  • Long Android TextView empuja otras vistas fuera de la pantalla
  • No se permite el diseño relativo en la barra de herramientas
  • ¿Cómo puede alguien crear una lista de desplazamiento horizontal con efecto de ajuste al centro
  • Porcentaje de ancho de un RelativeLayout
  • OnMeasure de la vista personalizada: cómo obtener el ancho en función de la altura
  • PercentRelativeLayout, cómo establecer la altura mediante programación
  • El widget Android AppBarLayout siempre aparece en la parte superior
  • Android Eclipse - Botón de fila de tabla - Problema de formato
  • Cómo establecer vistas en RelativeLayout mediante programación?
  • Disposición relativa de Android alignParentRight y alignParentEnd
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.