亚洲AVI,黑人巨茎大战欧美白妇,初高中生洗澡自慰高清网站,欧美日韩无砖专区一中文字

重慶分公司,新征程啟航

為企業(yè)提供網站建設、域名注冊、服務器等服務

使用RecyclerView時如何去除底部的分割線

本篇文章給大家分享的是有關使用RecyclerView時如何去除底部的分割線,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)公司 - IDC機房托管,四川服務器租用,成都服務器租用,四川網通托管,綿陽服務器托管,德陽服務器托管,遂寧服務器托管,綿陽服務器托管,四川云主機,成都云主機,西南云主機,IDC機房托管,西南服務器托管,四川/成都大帶寬,服務器機柜,四川老牌IDC服務商

自定義分割線

通過分析源碼后我們發(fā)現(xiàn)沒有相關的方法來處理這一需求,所以只能自定義分割線,通過上一篇文章的基礎我們知道肯定是修改getItemOffsets。那我們的思路是讓這個方法在到最后一個條目時,不偏移分割線的間隙。同時也要修改onDraw方法,讓他不再繪制最后一條分割線。

private void drawHorizontal(Canvas c, RecyclerView parent, State state) {
 int childCount = parent.getChildCount() - 1;
 int left = 0;
 int top = parent.getPaddingTop();
 int right = 0;
 int bottom = parent.getHeight() - parent.getPaddingBottom();
 for (int i = 0; i < childCount; i++) {
 View view = parent.getChildAt(i);
 RecyclerView.LayoutParams params = (LayoutParams) view.getLayoutParams(); //考慮,padding
 left = view.getRight();
 right = left + divider.getIntrinsicHeight(); //我們在自定義drawable的是是,寫死了高度,所以只能用高度
 divider.setBounds(left, top, right, bottom);
 divider.draw(c);
 }
}

/**
 * 思路:就是獲取每個item,計算divider的left,top,right,bottom
 */
private void drawVertical(Canvas c, RecyclerView parent, State state) {

 int childCount = parent.getChildCount() - 1;
 int left = parent.getPaddingLeft();
 int top = 0;
 int right = parent.getWidth() - parent.getPaddingRight(); //考慮右邊的padding
 int bottom = 0;
 for (int i = 0; i < childCount; i++) { //不繪制最后一個條目的分割線
 View view = parent.getChildAt(i);
 RecyclerView.LayoutParams params = (LayoutParams) view.getLayoutParams(); //考慮,padding
 top = view.getBottom() + params.topMargin; //就是當前view底部到頂部的距離
 bottom = top + divider.getIntrinsicHeight() - params.bottomMargin; //就是top+divider高度
 divider.setBounds(left, top, right, bottom);
 divider.draw(c);
 }
}

@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, State state) {
 int childAdapterPosition = parent.getChildAdapterPosition(view);

 int lastCount = parent.getAdapter().getItemCount() - 1;

 //如果當前條目與是最后一個條目,就不設置divider padding
 if (childAdapterPosition == lastCount) {
 outRect.set(0, 0, 0, 0);
 return;
 }

 Log.d("TAG", childAdapterPosition + "," + lastCount);
 if (orientation == LinearLayoutCompat.HORIZONTAL) {
 outRect.set(0, 0, divider.getIntrinsicHeight(), 0); //0,0,30,0,設置寬度
 } else {
 outRect.set(0, 0, 0, divider.getIntrinsicHeight()); //0,0,0,30,設置高度
 }

}

以上就是使用RecyclerView時如何去除底部的分割線,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


本文標題:使用RecyclerView時如何去除底部的分割線
標題鏈接:http://news.spvevtbd.cn/article/pghpjs.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP