헤더 추가
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); headerPlaceHolder = inflater.inflate(R.layout.view_header_holder_medium, null, false); layouManager.addView(headerPlaceHolder, 0);
가 추가되어 사용자 정의 레이아웃을 팽창시키고 AddView () 메소드를 사용하여 전달합니다. 예를 들어, 제공된 코드 스 니펫에서 다음 줄은 헤더를 추가합니다.
layoutInflater lincater = (layoutInflater) getActivity (). getSystemService (context.layout_inflater_service); Headerplaceholder = lypater.inflate (r.layout.view_header_holder_medium, null, false); layoumanager.addview (Headerplaceholder, 0);그러나이 작업을 수행하려면 LayoutManager는 두 가지 인수를 취하는 AddView () 메소드를 가져야합니다. 추가하여 ADD와 해당 위치가 RecyclerView 내에서 위치가 있어야합니다. 따라서이 접근법은 헤더 추가를 지원하는 사용자 정의 LayoutManager가 있다고 가정합니다. However, instead of using addView(), you can use addFooterView() or create a custom adapter that handles the footer and normal items.
Using a Custom Adapter
An alternative solution is to create a custom adapter that handles both the header and footer. 그런 다음 어댑터는 헤더 및 바닥 글을 포함하여 올바른 수의 항목을 반환하고 oncreateviewholder () 메소드에서 헤더 및 바닥 글을 팽창시킬 수 있습니다. 예제 구현 :LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); headerPlaceHolder = inflater.inflate(R.layout.view_header_holder_medium, null, false); layouManager.addView(headerPlaceHolder, 0);// 바닥 글 유형의 상수 정의 비공개 정적 최종 int vuter_view = 1; // OnCreateViewHolder () 메소드를 대체합니다 @보수 Public RecyclerView.viewholder OnCreateViewHolder (ViewGroup Parent, int ViewType) { if (viewtype == booter_view) { // 바닥 글을 팽창시킵니다 footerview = layoutinflater.from (context) .inflate (r.layout.list_item_footer, parent, false); 새로운 footerviewholder (footerview)를 반환합니다. } 또 다른 { // 정상보기를 팽창시킵니다 normalview = layoutInflater.from (context) .inflate (r.layout.list_item_normal, parent, false); New NormalViewholder (NormalView)를 반환합니다. } } // getItemViewType () 메소드를 재정의합니다 @보수 public int getItemViewType (int position) { if (position == data.size ()) { // 바닥 글의 바닥 _view 유형을 반환합니다 return buter_view; } return super.getItemViewType (위치); }
Handling GridLayoutManager
To support a GridLayoutManager, you can use a GridLayoutManager.SpanSizeLookup to specify the number of spans that each item should occupy. 예를 들면 : // spansizelookup을 만듭니다 gridlayoutmanager.spansizelookup spansizelookup = new gridlayoutmanager.spansizelookup () { @보수 public int getspansize (int position) { // 일반 항목의 경우 1 반환 및 바닥 글의 열 수 if (position == data.size ()) { return gridlayoutmanager.getspancount (); } 반환 1; } }; // spansizelookup을 GridLayoutManager로 설정합니다 gridlayoutmanager.setspansizelookup (spansizelookup);
이 접근법은 바닥 글의 전체 너비를 차지할 것입니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3