Establecer margen en RecyclerView mediante programación
Necesito fijar el margen superior en un RecyclerView programmatically, pero consigo esta excepción:
java.lang.RuntimeException: Unable to resume activity java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.support.v7.widget.RecyclerView$LayoutParams
- ItemDecoration sobreescribir getItemOffsets () y animación
- Android FlowLayout como RecyclerView LayoutManager
- ¿Cómo mostrar una vista vacía con RecyclerView?
- Detener el desplazamiento del usuario para establecer la posición en RecyclerView
- Android Recycler filtro adaptador de vista con animación
Aquí está mi código:
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams)recyclerView.getLayoutParams(); int marginTopDp = (int)getResources().getDimension(R.dimen.margin); int marginTopPx = (int) (marginTopDp * getResources().getDisplayMetrics().density + 0.5f); layoutParams.setMargins(0, marginTopPx, 0, 0); recyclerView.setLayoutParams(layoutParams);
Si utilizo ViewGroup.LayoutParams layoutParams = recyclerView.getLayoutParams
como sugiere la traza de pila, no puedo llamar a setMargin
ya que ese método no existe para ViewGroup.LayoutParams
.
Cualquier ayuda sería apreciada.
- SwipeRefreshLayout cargador no sube cuando tire hacia abajo de Android
- RecyclerView ItemTouchHelper Action_Drag_Ended?
- Cómo establecer la altura de una fila de elementos en GridLayoutManager
- Problemas con la implementación del modo de acción contextual en fragmento recyclerview
- ¿Cuáles son las ventajas de RecyclerView en comparación con ListView?
- Android Visualización de datos de json a cardview en RecyclerView
- Pantalla Android Parpadea en mostrar / ocultar barras del sistema
- RecyclerView vs. ListView
Probar esto. Puede consultar esto para más información.
ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) mRecyclerView.getLayoutParams(); marginLayoutParams.setMargins(0, 10, 0, 10); mRecyclerView.setLayoutParams(marginLayoutParams);
Necesitas usar un nuevo objeto de MargingLayoutParams
final FrameLayout.MarginLayoutParams marginLayoutParams = new FrameLayout.MarginLayoutParams(rvContacts.getLayoutParams()); marginLayoutParams.leftMargin = left; marginLayoutParams.topMargin = top; marginLayoutParams.rightMargin = right; marginLayoutParams.bottomMargin = bottom; recyclerView.setLayoutParams(marginLayoutParams); recyclerView.requestLayout();
- Contrato Android desarrollador izquierda, la necesidad de actualizar la aplicación sin el keystore original – es posible?
- Cómo desactivar gradle en Córdoba?