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:

  • ¿Cuál es la forma más rápida de agregar varias vistas a un LinearLayout?
  • Mostrar el estado del último elemento de la lista en un ListView con ViewHolder
  • Diferenciar entre una acción de Drag y una acción de Fling en recyclerview
  • Clic en el elemento programáticamente en RecyclerView
  • Barra de progreso de Android en el botón
  • ¿Cómo comprobar si NFC está habilitado o no en android?
  •  <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> 

  • No se puede obtener la vista de búsqueda en la barra de acciones para trabajar
  • java.lang.ClassCastException: libcore.net.http.HttpURLConnectionImpl no se puede convertir en javax.net.ssl.HttpsURLConnection
  • Cómo utilizar la imagen SVG en ImageView
  • Preferencias compartidas entre dos procesos de la misma aplicación
  • Prácticas recomendadas para exponer varias tablas mediante proveedores de contenido en Android
  • Android: Usar el estilo predeterminado en un título de diálogo personalizado
  • 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.