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.
- ¿Cuál es el propósito de FrameLayout y en qué escenario deberíamos usarlo?
- Android RelativeLayout cambiar altura de forma programática
- ¿Cómo obtener RelativeLayout trabajando con la fusión y la inclusión?
- Android RelativeLayout Selector state_pressed no funciona
- ImageView adjustViewBounds no funciona con Disposición relativa
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?
- Cómo construir un teclado de sugerencias de diseño en Android
- Agregue varios textViews (de anchos variables) en relativeLayout uno tras otro
- Configuración de RelativeLayout en código java
- ¿Cuáles son las diferencias entre LinearLayout, RelativeLayout y AbsoluteLayout?
- Ajuste la altura de SwipeRefreshLayout para colocar View en la parte inferior de la misma
- RelativeLayout y TextView con gravedad no funcional
- El efecto Ripple no funciona en RelativeLayout
- Inserción de contenido con escala escalable personalizada
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.