本文整理汇总了Java中android.support.v7.widget.RecyclerView.getClipToPadding方法的典型用法代码示例。如果您正苦于以下问题:Java RecyclerView.getClipToPadding方法的具体用法?Java RecyclerView.getClipToPadding怎么用?Java RecyclerView.getClipToPadding使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.support.v7.widget.RecyclerView
的用法示例。
在下文中一共展示了RecyclerView.getClipToPadding方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: drawVertical
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressLint("NewApi")
private void drawVertical(Canvas canvas, RecyclerView parent, View child) {
canvas.save();
final int left;
final int right;
if (parent.getClipToPadding()) {
left = parent.getPaddingLeft();
right = parent.getWidth() - parent.getPaddingRight();
canvas.clipRect(left, parent.getPaddingTop(), right,
parent.getHeight() - parent.getPaddingBottom());
} else {
left = 0;
right = parent.getWidth();
}
parent.getDecoratedBoundsWithMargins(child, mBounds);
final int bottom = mBounds.bottom + Math.round(ViewCompat.getTranslationY(child));
final int top = bottom - mDivider.getIntrinsicHeight();
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(canvas);
canvas.restore();
}
示例2: drawHorizontal
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressLint("NewApi")
private void drawHorizontal(Canvas canvas, RecyclerView parent, View child) {
canvas.save();
final int top;
final int bottom;
if (parent.getClipToPadding()) {
top = parent.getPaddingTop();
bottom = parent.getHeight() - parent.getPaddingBottom();
canvas.clipRect(parent.getPaddingLeft(), top, parent.getWidth() - parent.getPaddingRight(),
bottom);
} else {
top = 0;
bottom = parent.getHeight();
}
parent.getLayoutManager().getDecoratedBoundsWithMargins(child, mBounds);
final int right = mBounds.right + Math.round(ViewCompat.getTranslationX(child));
final int left = right - mDivider.getIntrinsicWidth();
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(canvas);
canvas.restore();
}
示例3: draw
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressLint("NewApi") private void draw(Canvas canvas, RecyclerView parent, View child) {
canvas.save();
final int left;
final int right;
if (parent.getClipToPadding()) {
left = parent.getPaddingLeft();
right = parent.getWidth() - parent.getPaddingRight();
canvas.clipRect(left, parent.getPaddingTop(), right,
parent.getHeight() - parent.getPaddingBottom());
} else {
left = 0;
right = parent.getWidth();
}
parent.getDecoratedBoundsWithMargins(child, mBounds);
final int bottom = mBounds.bottom + Math.round(ViewCompat.getTranslationY(child));
final int top = bottom - 16;
canvas.drawRect(left, top, right, bottom, myPaint);
canvas.restore();
}
示例4: drawVertical
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressLint("NewApi")
private void drawVertical(Canvas canvas, RecyclerView parent, View child) {
canvas.save();
final int left;
final int right;
if (parent.getClipToPadding()) {
left = parent.getPaddingLeft();
right = parent.getWidth() - parent.getPaddingRight();
canvas.clipRect(left, parent.getPaddingTop(), right,
parent.getHeight() - parent.getPaddingBottom());
} else {
left = 0;
right = parent.getWidth();
}
parent.getDecoratedBoundsWithMargins(child, mBounds);
final int bottom = mBounds.bottom + Math.round(ViewCompat.getTranslationY(child));
final int top = bottom - mDivider.getIntrinsicHeight() * 4;
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(canvas);
canvas.restore();
}
示例5: drawVertical
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressLint("NewApi")
protected void drawVertical(Canvas canvas, RecyclerView parent) {
canvas.save();
final int left;
final int right;
if (parent.getClipToPadding()) {
left = parent.getPaddingLeft();
right = parent.getWidth() - parent.getPaddingRight();
canvas.clipRect(left, parent.getPaddingTop(), right,
parent.getHeight() - parent.getPaddingBottom());
} else {
left = 0;
right = parent.getWidth();
}
final int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
final View child = parent.getChildAt(i);
parent.getDecoratedBoundsWithMargins(child, mBounds);
final int bottom = mBounds.bottom + Math.round(ViewCompat.getTranslationY(child));
final int top = bottom - mDivider.getIntrinsicHeight();
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(canvas);
}
canvas.restore();
}
示例6: drawHorizontal
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressLint("NewApi")
protected void drawHorizontal(Canvas canvas, RecyclerView parent) {
canvas.save();
final int top;
final int bottom;
if (parent.getClipToPadding()) {
top = parent.getPaddingTop();
bottom = parent.getHeight() - parent.getPaddingBottom();
canvas.clipRect(parent.getPaddingLeft(), top,
parent.getWidth() - parent.getPaddingRight(), bottom);
} else {
top = 0;
bottom = parent.getHeight();
}
final int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
final View child = parent.getChildAt(i);
parent.getLayoutManager().getDecoratedBoundsWithMargins(child, mBounds);
final int right = mBounds.right + Math.round(ViewCompat.getTranslationX(child));
final int left = right - mDivider.getIntrinsicWidth();
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(canvas);
}
canvas.restore();
}
示例7: drawHorizontal
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressLint("NewApi")
private void drawHorizontal(Canvas canvas, RecyclerView parent) {
canvas.save();
final int top;
final int bottom;
if (parent.getClipToPadding()) {
top = parent.getPaddingTop();
bottom = parent.getHeight() - parent.getPaddingBottom();
canvas.clipRect(parent.getPaddingLeft(), top,
parent.getWidth() - parent.getPaddingRight(), bottom);
} else {
top = 0;
bottom = parent.getHeight();
}
final int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
final View child = parent.getChildAt(i);
parent.getLayoutManager().getDecoratedBoundsWithMargins(child, mBounds);
final int right = mBounds.right + Math.round(ViewCompat.getTranslationX(child));
final int left = right - mDivider.getIntrinsicWidth();
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(canvas);
}
canvas.restore();
}
示例8: drawVertical
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressLint("NewApi")
private void drawVertical(Canvas canvas, RecyclerView parent) {
canvas.save();
final int left;
final int right;
if (parent.getClipToPadding()) {
left = parent.getPaddingLeft();
right = parent.getWidth() - parent.getPaddingRight();
canvas.clipRect(left, parent.getPaddingTop(), right,
parent.getHeight() - parent.getPaddingBottom());
} else {
left = 0;
right = parent.getWidth();
}
final int childCount = parent.getChildCount();
// for (int i = 0; i < childCount; i++) {
// Remove the last divider
// @By_syk
for (int i = 0; i < childCount - 1; i++) {
final View child = parent.getChildAt(i);
parent.getDecoratedBoundsWithMargins(child, mBounds);
final int bottom = mBounds.bottom + Math.round(ViewCompat.getTranslationY(child));
final int top = bottom - mDivider.getIntrinsicHeight();
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(canvas);
}
canvas.restore();
}
示例9: drawVertical
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressLint("NewApi")
private void drawVertical(Canvas canvas, RecyclerView parent) {
canvas.save();
int left;
int right;
if (parent.getClipToPadding()) {
left = parent.getPaddingLeft();
right = parent.getWidth() - parent.getPaddingRight();
canvas.clipRect(left, parent.getPaddingTop(), right,
parent.getHeight() - parent.getPaddingBottom());
} else {
left = 0;
right = parent.getWidth();
}
if(mDividerPadding > 0){//设置了padding,调整left和right的值
left = left + mDividerPadding;
right = right - mDividerPadding;
}
mDivider.setColor(mDividerColor);//自定义color,没设置就用默认值
final int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
final View child = parent.getChildAt(i);
parent.getDecoratedBoundsWithMargins(child, mBounds);
int bottom = mBounds.bottom + Math.round(ViewCompat.getTranslationY(child));
int top = bottom - mDivider.getIntrinsicHeight();
if(mVerticalDividerHeight > 0){//如果设置了高度,调整top的值
top = bottom - mVerticalDividerHeight;
}
mDivider.setBounds(left, top, right, bottom);
//mDivider.setCornerRadius();//设置矩形圆角
mDivider.draw(canvas);
}
canvas.restore();
}
示例10: drawHorizontal
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressLint("NewApi")
private void drawHorizontal(Canvas canvas, RecyclerView parent) {
canvas.save();
int top;
int bottom;
if (parent.getClipToPadding()) {
top = parent.getPaddingTop();
bottom = parent.getHeight() - parent.getPaddingBottom();
canvas.clipRect(parent.getPaddingLeft(), top,
parent.getWidth() - parent.getPaddingRight(), bottom);
} else {
top = 0;
bottom = parent.getHeight();
}
if(mDividerPadding > 0){
top = top + mDividerPadding;
bottom = bottom - mDividerPadding;
}
mDivider.setColor(mDividerColor);
final int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
final View child = parent.getChildAt(i);
parent.getLayoutManager().getDecoratedBoundsWithMargins(child, mBounds);
int right = mBounds.right + Math.round(ViewCompat.getTranslationX(child));
int left = right - mDivider.getIntrinsicWidth();
if(mHorizontalDividerWidth > 0){
left = right - mHorizontalDividerWidth;
}
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(canvas);
}
canvas.restore();
}
示例11: onDraw
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onDraw(Canvas canvas, RecyclerView parent, RecyclerView.State state) {
canvas.save();
final int left;
final int right;
if (parent.getClipToPadding()) {
left = parent.getPaddingLeft();
right = parent.getWidth() - parent.getPaddingRight();
canvas.clipRect(left, parent.getPaddingTop(), right,
parent.getHeight() - parent.getPaddingBottom());
} else {
left = 0;
right = parent.getWidth();
}
final int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
final View child = parent.getChildAt(i);
if (!hasDivider(parent, child))
continue;
parent.getDecoratedBoundsWithMargins(child, mBounds);
final int bottom = mBounds.bottom + Math.round(ViewCompat.getTranslationY(child));
final int top = bottom - mDivider.getIntrinsicHeight();
mDivider.setBounds(left, top, right, bottom);
mDivider.setAlpha((int) (child.getAlpha() * 255));
mDivider.draw(canvas);
}
canvas.restore();
}
示例12: onDrawOver
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressLint("NewApi")
@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state)
{
super.onDrawOver(c, parent, state);
if(parent.getLayoutManager() == null)
{
return;
}
if(parent.getClipToPadding())
{
c.clipRect(parent.getPaddingLeft() - dividerOffset,
parent.getPaddingTop() - dividerOffset,
parent.getWidth() - parent.getPaddingRight() + dividerOffset,
parent.getHeight() - parent.getPaddingBottom() + dividerOffset);
}
if(orientation == HORIZONTAL)
{
drawHorizontal(c, parent);
}
else
{
drawVertical(c, parent);
}
}
示例13: onDraw
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onDraw(Canvas canvas, RecyclerView parent, RecyclerView.State state) {
if (parent.getLayoutManager() == null) {
return;
}
canvas.save();
final int left;
final int right;
if (parent.getClipToPadding()) {
left = parent.getPaddingLeft();
right = parent.getWidth() - parent.getPaddingRight();
canvas.clipRect(left, parent.getPaddingTop(), right,
parent.getHeight() - parent.getPaddingBottom());
} else {
left = 0;
right = parent.getWidth();
}
final int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
final View child = parent.getChildAt(i);
parent.getDecoratedBoundsWithMargins(child, mBounds);
Object object = child.getTag(R.id.item_divider);
if (object != null && object instanceof Drawable) {
Drawable drawable = (Drawable) object;
final int top = mBounds.top + Math.round(child.getTranslationX());
final int bottom = mBounds.top + drawable.getIntrinsicHeight();
drawable.setBounds(left, top, right, bottom);
drawable.draw(canvas);
}
}
canvas.restore();
}
示例14: draw
import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@SuppressLint("NewApi")
private void draw(Canvas c, RecyclerView parent)
{
int childCount = parent.getChildCount();
if(parent.getClipToPadding())
{
c.clipRect(parent.getPaddingLeft(), parent.getPaddingTop(),
parent.getWidth() - parent.getPaddingRight(),
parent.getHeight() - parent.getPaddingBottom());
}
int top = parent.getPaddingTop();
int preHeaderId;
int headerId = NO_POSITION;
int x = parent.getPaddingLeft();
for(int i = 0; i < childCount; i++)
{
View itemView = parent.getChildAt(i);
int position = parent.getChildAdapterPosition(itemView);
//只有各组第一个 并且 headerId!=-1 才绘制头部view
preHeaderId = headerId;
headerId = getHeaderId(position);
if(headerId <= NO_POSITION || headerId == preHeaderId)
{
continue;
}
View header = getHeaderView(parent, position);
int heightWithPadding = header.getHeight() + top;
int y = Math.max(heightWithPadding, itemView.getTop());
if(isStick)
{
int nextPosition = getNextHeadPosition(i, headerId, childCount, parent);
if(nextPosition != NO_POSITION)
{
View nextView = parent.getChildAt(nextPosition);
//获得真实位置后再进行判断
parent.getDecoratedBoundsWithMargins(nextView, rect);
//判断下一个头部view是否到了与上一个头部view接触的临界值
//如果满足条件则把上一个头部view推上去
if(rect.top <= heightWithPadding)
{
//这里使用nextView.getTop 直接减掉 header.getHeight(),如果减去heightWithPadding,
//会出现移动时的间距
y = nextView.getTop() - header.getHeight();
}
}
}
//这个时候,y是header底部位置,需要减去它的高度,修正定位
y -= header.getHeight();
c.translate(x, y);
header.draw(c);
//修正回来
c.translate(-x, -y);
}
}