先來個效果
需求:靠近中間的item始終壓在兩邊。滑動後中間的始終在最下面。
效果的實現大致有兩種,第一種:自定義recyclerview layoutmanager 通過onlayoutchildren() 自己擺放控制項,繪製需從螢幕兩邊的控制項往中間繪製,這樣才能保證覆蓋層級沒有問題,同時需要重寫父類scrollhorizontallyby() ,在其中呼叫offsetchildrenhorizontal()使得recyclerview擁有滑動效果
第二種:通過對viewpager設定android:clipchildren=」false」 方法,讓父布局不去限制viewpager 繪製,即在螢幕外面的也會被畫出來,本文主要介紹第二種,簡便易行的方案
對viewpager 設定android:clipchildren=」false」 使viewpager 畫出隱藏區域(此時如果是mathparent 畫在螢幕外面),將viewpager區域縮小到乙個item ,可以看到多個item。
外面包裹乙個viewgroup 將事件傳遞給viewpager
ll_container.setontouchlistener(new view.ontouchlistener()
});
3.處理層疊關係,viewpager
public
class
customviewpager
extends
viewpager
public
customviewpager(context context, attributeset attrs)
private
void
init()
/** @return 第n個位置的child 的繪製索引
*/@override
protected
intgetchilddrawingorder(int childcount, int n)
childcenterxabs.add(indexabs);
}collections.sort(childcenterxabs);
}return childindex.get(childcenterxabs.get(childcount - 1 - n));
}private
intgetviewcenterx(view view)
}
4.自定義實現縮放唯一動畫
public
class
scaleintransformer
extends
basepagetransformer
public
scaleintransformer(float minscale)
public
scaleintransformer(viewpager.pagetransformer pagetransformer)
public
scaleintransformer(float minscale, viewpager.pagetransformer pagetransformer)
@targetapi(build.version_codes.honeycomb)
public
void
pagetransform(view view, float position)
}
不一樣又不一樣的 木板接水
空地上豎立著n個從左到右排列的木板,它們可以把水擋住,但溢位最邊上木板的水將會流到空地上。已知木板間距都是單位1,現給定每個木板的高度,請求出總共能接住的水量?說明一點,這裡只考慮間距 寬度 和高度,不考慮第三個維度,因此水量是平方單位。木板高度分別是2,1,3,那麼我們可以接住2 2 4平方單位的...
我們不一樣
前輩們因自身實際的種種因素的影響而產生的認知,並不一定適用於我們自身。你可能從來不會去想乙個問題 你的觀點,來自 其實,它們絕大部分來自網路,它們或多或少地蠶食了你的判斷力。未來的路要怎麼走,沒有對與錯。有的,只是每乙個選擇所需要承擔的責任。我不想面臨,後之視今亦猶今之視昔的悲哀。我希望,未來回首,...
我們不一樣
這麼多年的兄弟 有誰比我更了解你 太多太多不容易 磨平了歲月和脾氣 時間轉眼就過去 這身後不散的筵席 只因為我們還在 心留在原地 張開手 需要多大的勇氣 這片天 你我一起撐起 更努力 只為了我們想要的明天 好好的 這份情好好珍惜 我們不一樣 每個人都有不同的境遇 我們在這裡 在這裡等你 我們不一樣 ...