Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


El ancho de match_parent no funciona en RecyclerView

Mi RecyclerView y el elemento tiene el mismo ancho pero el resultado es: Introduzca aquí la descripción de la imagen

<view class="android.support.v7.widget.RecyclerView" android:layout_width="match_parent" 

Y artículos:

  • Margen entre elementos en reciclado ver Android
  • ¿Cuál es un valor razonable para el tamaño de tarjeta SD para AVDs?
  • Android PhoneGap - sólo teclado numérico
  • ¿Existe un Centro de Juegos Android?
  • Iniciar un assínctar desde un receptor de difusión
  • ProGuard no funciona como se esperaba después de la actualización de Android Studio
  •  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:fab="http://schemas.android.com/apk/res-auto" android:id="@+id/ll_itm" android:orientation="horizontal" android:layout_width="match_parent" 

    completo:

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:fab="http://schemas.android.com/apk/res-auto" android:id="@+id/ll_itm" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:weightSum="100" android:gravity="right" > <Button android:layout_width="0dp" android:layout_weight="15" android:layout_height="fill_parent" android:text="ملاحظات" android:id="@+id/button" /> <LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="20" android:gravity="center" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > <com.getbase.floatingactionbutton.FloatingActionButton android:layout_width="fill_parent" android:layout_height="fill_parent" fab:fab_plusIconColor="#ff56ff83" fab:fab_colorNormal="@color/d_red" fab:fab_colorPressed="#ff5c86ff" fab:fab_size="mini" fab:fab_icon="@drawable/ic_remove_white" android:id="@+id/fab_rmv" /> <esfandune.ir.elmikarbordiardakan.other.CustomTxtView android:layout_weight="25" android:layout_width="0dp" android:layout_height="fill_parent" android:textAppearance="?android:attr/textAppearanceLarge" android:text="0" android:gravity="right|center_vertical" android:id="@+id/txt_takhir_itm" /> <com.getbase.floatingactionbutton.FloatingActionButton android:layout_width="fill_parent" android:layout_height="fill_parent" fab:fab_plusIconColor="@color/colorprimarylight" fab:fab_colorNormal="@color/colorprimarydark" fab:fab_colorPressed="@color/colorprimary" fab:fab_size="mini" fab:fab_icon="@drawable/ic_add_white" android:id="@+id/fab_add" /> </LinearLayout> </LinearLayout> <Spinner android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="10" android:id="@+id/sp_nomre_itm" android:entries="@array/degrees"/> <LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="10" android:gravity="center" > <!--LinearLayout baraye ine ke nameshod fab ro weight behosh dad--> <com.getbase.floatingactionbutton.FloatingActionButton android:layout_width="fill_parent" android:layout_height="fill_parent" fab:fab_plusIconColor="#ff56ff83" fab:fab_colorNormal="@color/d_green" fab:fab_colorPressed="@color/d_orange" fab:fab_size="normal" fab:fab_icon="@drawable/ic_done_white" android:id="@+id/fab_hazr" /> </LinearLayout> <esfandune.ir.elmikarbordiardakan.other.CustomTxtView android:layout_weight="5" android:layout_width="0dp" android:layout_height="fill_parent" android:textAppearance="?android:attr/textAppearanceLarge" android:text="100" android:gravity="right|center_vertical" android:id="@+id/txt_ghybtNumber_itm" /> <esfandune.ir.elmikarbordiardakan.other.CustomTxtView android:layout_weight="30" android:layout_width="0dp" android:layout_height="fill_parent" android:textAppearance="?android:attr/textAppearanceLarge" android:text="عباسعلی ملاحسینی اردکانی" android:gravity="right|center_vertical" android:id="@+id/txt_title_itm" android:layout_marginRight="10dp" /> <view android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="10" class="de.hdodenhof.circleimageview.CircleImageView" android:id="@+id/view" android:src="@drawable/mmrdf" /> </LinearLayout> 

  • ListView muestra brevemente el mensaje vacío antes de cargar los datos
  • En Android cada pantalla debe ser su propia actividad o diseño?
  • Recuperar la ruta de acceso del archivo de la intención de DownloadManager detectada
  • Patrones de uso de la actividad Transición vs Fragmentos dinámicos
  • Las imágenes agregadas a AnimationDrawable por programación memoria de fugas
  • Cómo comunicarse con el servidor Node.js desde el cliente de Android
  • 5 Solutions collect form web for “El ancho de match_parent no funciona en RecyclerView”

    En su adaptador donde está inflando el elemento en onCreateViewHolder , es el segundo parámetro de la llamada de inflate null ?.

    Si es así, cambie a parent que es el primer parámetro en la firma de función onCreateViewHolder .

     View rootView = LayoutInflater.from(context).inflate(R.layout.itemLayout, parent, false); 

    Si necesita el segundo parámetro para ser null entonces cuando obtiene la referencia de vista en inflar, haga lo siguiente

     View rootView = LayoutInflater.from(context).inflate(R.layout.itemLayout, null, false); RecyclerView.LayoutParams lp = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); rootView.setLayoutParams(lp); return new RecyclerViewHolder(rootView); 

    Dentro de onCreateViewHolder (…) método de adaptador donde se está inflando la vista .. usted tiene que definir el ViewGroup como el parent.This obtendrá del primer parámetro de onCreateViewHolder (…) método.

    Vea la línea abajo en el segundo parámetro que estoy pasando el ViewGroup. Esto automáticamente coincidirá con la vista de su padre:

     rowView=inflater.inflate(R.layout.home_custom_list, parent,false); 

    /// el código completo está abajo

     public View onCreateViewHolder(ViewGroup parent, int position) { // TODO Auto-generated method stub View rowView; LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); rowView=inflater.inflate(R.layout.home_custom_list, parent,false); 

    Intente esto cuando establece parámetros de diseño para su elemento en el adaptador.

      View viewHolder= LayoutInflater.from(parent.getContext()) .inflate(R.layout.item, parent, false); viewHolder.setLayoutParams(new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT)); ViewOffersHolder viewOffersHolder = new ViewOffersHolder(viewHolder); return viewOffersHolder; 

    He resuelto esto con:

      myInflatedRowLayout.getLayoutParams().width = vg.getWidth(); 

    Está reemplazando MATCH_PARENT con el ancho real del RecyclerView .

    No puedes ver tu código completo, pero puedes adivinar, que algunas de las vistas dentro de tu LinearLayout son ' wrap_content '. Necesitas hacer que uno o algunos de ellos se expandan al ancho completo usando ' android:layout_weight="1" '

    Actualización: tiene un montón de redundante layout_weight 's. wrap_content todos ' wrap_content ' y para sólo uno de ellos agrega layout_weight=1 – para el último CustomTextView. De esta manera, ocupará todo el espacio en blanco.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.