XRecyclerView分割線多了一個的問題
之前在使用XRecyclerView的實現下拉重新整理,上拉載入更多的時候,當資料量較少的時候,最下面一行的資料的分割線多了一個,很是鬱悶。如下圖
後來看了分割線的原始碼,發現由於新增分割線的時候把XRecyclerView的footerview也算成了一個childView,所以多添加了一個。所以解決辦法是在分割線類RecyclerViewDivider計算childView的個數完成後減一就行了
final int childSize = parent.getChildCount()-1;
以下是萬能分割線修改之後的全部程式碼
public class RecyclerViewDivider extends RecyclerView.ItemDecoration {
private Paint mPaint;
private Drawable mDivider;
private int mDividerHeight = 2;//分割線高度,預設為1px
private int mOrientation;//列表的方向:LinearLayoutManager.VERTICAL或LinearLayoutManager.HORIZONTAL
private static final int[] ATTRS = new int[]{android.R.attr.listDivider};
/**
* 預設分割線:高度為2px,顏色為灰色
*
* @param context
* @param orientation 列表方向
*/
public RecyclerViewDivider(Context context, int orientation) {
if (orientation != LinearLayoutManager.VERTICAL && orientation != LinearLayoutManager.HORIZONTAL) {
throw new IllegalArgumentException("請輸入正確的引數!");
}
mOrientation = orientation;
final TypedArray a = context.obtainStyledAttributes(ATTRS);
mDivider = a.getDrawable(0);
a.recycle();
}
/**
* 自定義分割線
*
* @param context
* @param orientation 列表方向
* @param drawableId 分割線圖片
*/
public RecyclerViewDivider(Context context, int orientation, int drawableId) {
this(context, orientation);
mDivider = ContextCompat.getDrawable(context, drawableId);
mDividerHeight = mDivider.getIntrinsicHeight();
}
/**
* 自定義分割線
*
* @param context
* @param orientation 列表方向
* @param dividerHeight 分割線高度
* @param dividerColor 分割線顏色
*/
public RecyclerViewDivider(Context context, int orientation, int dividerHeight, int dividerColor) {
this(context, orientation);
mDividerHeight = dividerHeight;
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setColor(dividerColor);
mPaint.setStyle(Paint.Style.FILL);
}
//獲取分割線尺寸
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
super.getItemOffsets(outRect, view, parent, state);
outRect.set(0, 0, 0, mDividerHeight);
}
//繪製分割線
@Override
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
super.onDraw(c, parent, state);
if (mOrientation == LinearLayoutManager.VERTICAL) {
drawVertical(c, parent);
} else {
drawHorizontal(c, parent);
}
}
//繪製橫向 item 分割線
private void drawHorizontal(Canvas canvas, RecyclerView parent) {
final int left = parent.getPaddingLeft();
final int right = parent.getMeasuredWidth() - parent.getPaddingRight();
final int childSize = parent.getChildCount()-1;
for (int i = 0; i < childSize; i++) {
final View child = parent.getChildAt(i);
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
final int top = child.getBottom() + layoutParams.bottomMargin;
final int bottom = top + mDividerHeight;
if (mDivider != null) {
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(canvas);
}
if (mPaint != null) {
canvas.drawRect(left, top, right, bottom, mPaint);
}
}
}
//繪製縱向 item 分割線
private void drawVertical(Canvas canvas, RecyclerView parent) {
final int top = parent.getPaddingTop();
final int bottom = parent.getMeasuredHeight() - parent.getPaddingBottom();
final int childSize = parent.getChildCount()-1;
for (int i = 0; i < childSize; i++) {
final View child = parent.getChildAt(i);
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
final int left = child.getRight() + layoutParams.rightMargin;
final int right = left + mDividerHeight;
if (mDivider != null) {
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(canvas);
}
if (mPaint != null) {
canvas.drawRect(left, top, right, bottom, mPaint);
}
}
}
}
相關推薦
XRecyclerView分割線多了一個的問題
之前在使用XRecyclerView的實現下拉重新整理,上拉載入更多的時候,當資料量較少的時候,最下面一行的資料的分割線多了一個,很是鬱悶。如下圖 後來看了分割線的原始碼,發現由於新增分割線的時候把XRecyclerView的footerview也算成了一
想做大神泡妹嗎!看看你又多了一個招
系統 大學泡妹 網絡 VMware Workstation 虛擬化 這個就是vm虛擬機的全稱。1.打開軟件2.選擇創建新的虛擬機,進入如下界面這裏有兩種選擇方式;典型比較簡單,自定義就比較復雜一些。下面我們就選簡單快速的典型吧!第二種大家可以有空自己嘗試。3.這三種模式,光盤已經幾乎不用了
C#序列化實體成XML後多了一個問號
非法字符 express 就是 錯誤 技術 system text alt ace 在調試時,程序報如下錯誤 原因是在C#序列化實體成XML後,前面多了一個問號,如圖所示: 導致該XML格式不是正確的XML格式,所以程序報錯。 解決辦法就是加入一段代碼,隱藏掉XML開頭
sed替換文件後出現文件裏多了一個 ^M
vpd watermark log vim 文件 fff ESS -i dos 替換命令sed -i (用/c 進行整行替換): 解決方法:yum -y install dos2unixdos2unix db.conf然後vim進去發現沒有 ^M了sed替換文件後出現文件
無處不在的雲端計算又多了一個兄弟——霧計算
現在正在流行的“雲端計算”,是把大量資料放到“雲”裡去計算或儲存。這樣,就解決了目前電腦或手機儲存量不夠,或者是運算速度不夠快的問題,當然也帶來了其他很多好處。 這個所謂的“雲”的核心,就是裝了大量伺服器和儲存器的“資料中心”。由於目前的半導體晶片和其他配套硬體還很耗電,全球資料中心的用電功
2019 我的世界多了一個 Python
大一時學過 C語言,大三時用 C 控制微控制器,之後就沒有別的和程式設計的交集了。 大約十天前下定決心學 Python,不開玩笑,版本我
Eclipse換行莫名其妙多了一個右花括號(Eclipse最詭異的BUG)
先來看看截圖:(注:Eclipse版本是:Eclipse oxygen 1a)很神奇是不?莫名奇妙多了一個右花括號,而且更神奇的是根據搜尋得到的解決方法(如下)設定後是完全沒效果的??window〉preference〉java>Editor>typing>
Eclipse Git提交程式碼,多了一個“工程同名的資料夾”,找不到解決辦法!!!
提交程式碼到Git倉庫,有2種方式。第1種,先在OSChina等平臺建立git專案,本地clone,再在本地修改程式碼提交。√這種方式,沒任何問題。不過,我平時不喜歡這麼幹。第2種,本地已經有了專案,需要提交到git上。×分享程式碼到Git遠端倉庫的時候,本地首先需要建立本地
Spring Security 4 退出後再登入,頁面停留在登入頁,Url卻多了一個Logout引數
spring security 4 的logout問題 今天在整合spring-boot 和 spring-security的時候,出現瞭如下的怪象: 配置好了基本的登入和身份驗證(自定義了一個簡單的UserDetailsService),springboo
解決input框獲取焦點時改變input邊框的顏色,在谷歌瀏覽器中input框獲取焦點時,input框多了一個帶顏色的邊框
1、問題頁面顯示效果 2、解決辦法,在input獲取焦點的樣式中加入outline:none;或outline-width:0; input[type=text]:focus, select:focus{ border:1px solid #3879d9; out
資料庫讀取時間欄位後面多了一個".0"問題的解決辦法
今天寫自己的部落格網站遇到一個問題:就是從資料庫讀取的時間顯示在網頁上是下面這種,多了一個”.0” 但是我分明已經寫了時間格式: //獲取評論時間 public String commenttime() { SimpleDa
XP因為多了一個使用者“ASP.NETMachineA...”而出現登入視窗
如果系統是win xp,安裝了微軟的.net Freamwork的早期版本,也會有這個帳戶,可以到網上下載 .NET Freamwork SP1 進行升級,升級後就沒有了,不過帶著也沒什麼問題,因為這是個受限帳戶.反正就是更新的原因才出現的 不要刪除這個使用者,如果不
Menu菜單屬性添加分割線與隱藏多余的分割線
ref archive arc 手動 鏈接 tomat mage logs pan MyMenu.AutoLineReduction := maAutomatic; {默認會自動隱藏多余的分割線} //MyMenu.AutoLineReduction := maM
CS61b lab3 分享一個bug,足足找了一個多小時,希望各位別入坑哈
好的 log http 錯誤代碼 style obj item next slist part1: 寫一個測試程序,比較簡單就不貼代碼啦,運行結果: part2: 改進InserEnd method,我是按照課上講的把原來的singlyList變成doubleList,在
python采用 多進程/多線程/協程 寫爬蟲以及性能對比,牛逼的分分鐘就將一個網站爬下來!
分配 返回 afa 一個 同方 except erer 簡單 direct 首先我們來了解下python中的進程,線程以及協程! 從計算機硬件角度: 計算機的核心是CPU,承擔了所有的計算任務。一個CPU,在一個時間切片裏只能運行一個程序。 從操作系統的角度: 進程
就因為用寫了一個自助提卡系統!居然一個月掙的比一年多!勿商用
信息 其中 技術 .com 查詢 api map lmap 過多 相關環境 源碼信息:你猜啊 漏洞類型:Forwarded-For註入 搭建成功之後如下 : 看到如下頁面是不是有似曾相識的感受: 進群:125240963 即可獲取數十套PDF哦! 上圖是安
近期處理多個Highcharts圖標時,碰到重復操作,所以編寫了一個流程控制器
null sql 控制 lin end created 格式 har 合並數組 HTML選擇頁面 第一部分:<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/9/8 * Tim
一個NumPy模組就要學這麼多?師傅發兩個月就整理了一個模組資料
一、NumPy簡介 其官網是: http://www.numpy.org/ NumPy是Python語言的一個擴充程式庫。支援高階大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫。Numpy內部解除了Python的GIL(全域性直譯器鎖),執
c# 多個字串做分隔符, 雖然可以用正則做分隔符, 但是遇到特殊符號還真不好寫.自己寫了一個.
[TestMethod] public void TestMethod2() { string str = "aaa|||bbb|||ccc"; var rr= MySplit(str, "|
實習了一個多月!師傅終於教我案例了!分散式爬蟲!這是我的筆記
要抓微博資料,第一步便是模擬登陸,因為很多資訊(比如使用者資訊,使用者主頁微博資料翻頁等各種翻頁)都需要在登入狀態下才能檢視 這裡我簡單說一下,做爬蟲的同學不要老想著用什麼機器學習的方法去識別複雜驗證碼,真的難度非常大,這應該也不是一個爬蟲工程師的工作重點,當然這只是我的