×÷¼Ò
怬

ΪʲôҪʹÓÃItemDecoration

×÷Õߣº À´Ô´£º 2017-07-03 16:03:05 ÔĶÁ´Î ÎÒÒªÆÀÂÛ

²»ÒªÓÃview×ö¹Ï·ÖÏß— ȱ·¦Áé»îÐÔ

Èç²»ÑÅdividerÊÇ(itemµÄ)viewµÄÒ»²¿·Ö£¬ÄÇôÄã¾ÍÎÞ·¨¿ØÖÆËü¡£Äã¶ÀÒ»ÄÜ¿ØÖƵľÍÊǸù¾ÝitemµÄposition¸Ä±ädividerµÄ¿É¼û×´¿ö¡£ ¶øitem decoration¾ÍÁé»î¶àÁË¡£

In the above image for the last item in the group divider fills the entire width. Other dividers have a margin of 56dp to their left side. Here is the ItemDecorator’s>

  • @Override 
  •  
  • public void onDraw(Canvas canvas, RecyclerView parent, RecyclerView.State state) { 
  •  
  •   canvas.save(); 
  •  
  •   final int leftWithMargin = convertDpToPixel(56); 
  •  
  •   final int right = parent.getWidth(); 
  •  
  •   
  •  
  •   final int childCount = parent.getChildCount(); 
  •  
  •   for (int i = 0; i < childCount; i++) { 
  •  
  •     final View child = parent.getChildAt(i); 
  •  
  •     int adapterPosition = parent.getChildAdapterPosition(child); 
  •  
  •     left = (adapterPosition == lastPosition) ?  0 : leftWithMargin; 
  •  
  •     parent.getDecoratedBoundsWithMargins(child, mBounds); 
  •  
  •     final int bottom = mBounds.bottom + Math.round(ViewCompat.getTranslationY(child)); 
  •  
  •     final int top = bottom - mDivider.getIntrinsicHeight(); 
  •  
  •     mDivider.setBounds(lefttopright, bottom); 
  •  
  •     mDivider.draw(canvas); 
  •  
  •   } 
  •  
  •   canvas.restore(); 
  •  
  • ²»ÒªÓÃview×ö¹Ï·ÖÏß—Ó¦Óà ItemDecoration

    дһ¸ö±¾ÉíµÄItemDecorationÆäʵÒì³£¼òµ¥¡£ÄãÖ»ÐëÒª´´½¨Ò»¸ö³ÖÐøÁËItemDecorationµÄÀà¾Í¿ÉÒÔÁË¡£ÖØÐ´ getItemOffsets() ºÍ>

  • DividerItemDecoration decoration = new DividerItemDecoration(getApplicationContext(), VERTICAL); 
  •  
  • recyclerView.addItemDecoration(decoration); 
  • Ò»¸öRecyclerView¿ÉÒÔÌí¼Ó¶à¸öItemDecoration¡£·¢»ÓÄÔ½î·ç±©µÄʱ¿Ìµ½ÁË¡£

    ËùÓÐdecoration¶¼ÔÚitem»æÖÆÖ®Ç°»æÖÆ¡£Èç²»ÑÅÄãÏëÈÃdecorationÔÚviewÖ®ºó»æÖÆ£¬ÖØÐ´onDrawOver() ¶ø²»ÊÇonDraw() ¡£

    ËùÒÔÏ´ÎÏëΪRecyclerViewÌí¼Ó¹Ï·ÖÏßµÄʱ¿Ì£¬±ðÓ¦ÓÃÔÚitem¹¹ÔìÌí¼ÓviewÕâÖÖ·½·¨ÁË£¬Ó¦ÓÃItemDecoration¡£

    Ï¡ÍÁ¾ò½ð£¬ÕâÊÇÒ»¸öÕë¶Ô¼¼ÇÉ¿ª±ÙÕßµÄÒ»¸öÓ¦Óã¬Äã¿ÉÒÔÔÚ¾ò½ðÉÏ»ñÈ¡×îÐÂ×îÓÅÖʵļ¼Çɸɻõ£¬²»½ö½öÊÇAndroid³£Ê¶¡¢Ç°¶Ë¡¢ºó¶ËÒÔÖÁÓÚ²úÆ·ºÍÉè¼Æ¶¼ÓÐä¯ÀÀ£¬Ïë³ÉΪȫջ¹¤³ÌʦµÄͬ»ï²»Òª´í¹ý£¡

    ¡¾±à¼­ÍƼö¡¿


    ¡¡¡¡ÍƼöÔĶÁ

    ¡¡¡¡»ùÓÚLinuxµÄÎïÁªÍø²Ù×÷ϵͳ֪¶àÉÙ

    ˵µ½ÎïÁªÍøÓ¦ÓõIJÙ×÷Ìåϵ£¬¾Í²»¿Ë²»¼°²»ÌáLinux£¬ÒòΪLinuxÌåϵÊǽñ³¯ÎïÁªÍøÉ豸ÖÐÓ¦ÓÃ×î¹ã·ºµÄ²Ù×÷Ìåϵ£¬Ö®Ç°ÎÒÓн²¹ý¹ØÓÚWindowsÎïÁªÍø²Ù×÷Ìåϵ£¬ÄÇô±¾ÎľÍÀ´¾ßÌå½éÉÜһϻùÓÚLinuxµÄ>>>ÏêϸÔĶÁ


    ±¾ÎıêÌ⣺ΪʲôҪʹÓÃItemDecoration

    µØÖ·£ºhttp://www.17bianji.com/lsqh/35999.html

    ¹Ø¼ü´Ê£º ̽Ë÷·¢ÏÖ

    ÀÖ¹º¿Æ¼¼²¿·ÖÐÂÎż°ÎÄÕÂ×ªÔØ×Ô»¥ÁªÍø£¬¹©¶ÁÕß½»Á÷ºÍѧϰ£¬ÈôÓÐÉæ¼°×÷Õß°æÈ¨µÈÎÊÌâÇ뼰ʱÓëÎÒÃÇÁªÏµ£¬ÒÔ±ã¸üÕý¡¢É¾³ý»ò°´¹æ¶¨°ìÀí¡£¸ÐлËùÓÐÌṩ×ÊѶµÄÍøÕ¾£¬»¶Ó­¸÷ÀàýÌåÓëÀÖ¹º¿Æ¼¼½øÐÐÎÄÕ¹²ÏíºÏ×÷¡£

    ÍøÓѵãÆÀ
    ×ÔýÌåרÀ¸

    ÆÀÂÛ

    ÈȶÈ

    ¾«²Êµ¼¶Á
    À¸Ä¿ID=71µÄ±í²»´æÔÚ(²Ù×÷ÀàÐÍ=0)