当前位置: 首页>>代码示例>>Java>>正文


Java RecyclerView.getLocationOnScreen方法代码示例

本文整理汇总了Java中android.support.v7.widget.RecyclerView.getLocationOnScreen方法的典型用法代码示例。如果您正苦于以下问题:Java RecyclerView.getLocationOnScreen方法的具体用法?Java RecyclerView.getLocationOnScreen怎么用?Java RecyclerView.getLocationOnScreen使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在android.support.v7.widget.RecyclerView的用法示例。


在下文中一共展示了RecyclerView.getLocationOnScreen方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: isChildInCenterX

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * @param recyclerView
 * @param view
 * @return
 */
public static boolean isChildInCenterX(@NonNull RecyclerView recyclerView, @NonNull View view) {
    int childCount = recyclerView.getChildCount();
    int[] lvLocationOnScreen = new int[2];
    recyclerView.getLocationOnScreen(lvLocationOnScreen);
    int middleX = lvLocationOnScreen[0] + recyclerView.getWidth() / 2;
    if (childCount > 0) {
        int[] vLocationOnScreen = new int[2];
        view.getLocationOnScreen(vLocationOnScreen);
        int width = view.getWidth();
        if (vLocationOnScreen[0] <= middleX && vLocationOnScreen[0] + width >= middleX) {
            return true;
        }
    }
    return false;
}
 
开发者ID:sanyuzhang,项目名称:CircularViewPager,代码行数:21,代码来源:CircularUtils.java

示例2: getInsideLocation

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
     * 获取当前点击的位置在RecyclerView内部的坐标 (Y坐标范围0+padding到height-padding)?
     */
    private float[] getInsideLocation(RecyclerView recyclerView, float touchRawX, float touchRawY) {
        float[] result = new float[2];
        int[] location = new int[2];
        recyclerView.getLocationOnScreen(location);
        result[0] = touchRawX - location[0];
        result[1] = touchRawY - location[1];
//        System.out.println("getInsideLocation:" + result[0] + "-" + result[1] + "==" + "X:" + touchRawX + "Y:" + touchRawY);

        result[0] = result[0] / dragListener.getScale();
        result[1] = result[1] / dragListener.getScale();

        int minY = recyclerView.getPaddingTop();
        int maxY = recyclerView.getHeight() - recyclerView.getPaddingBottom();
        result[1] = Math.min(Math.max(result[1], minY), maxY);


        return result;
    }
 
开发者ID:free46000,项目名称:MultiItem,代码行数:22,代码来源:ItemDragHelper.java

示例3: addMirrorView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private ImageView addMirrorView(ViewGroup parent, RecyclerView recyclerView, View view) {
    view.destroyDrawingCache();
    view.setDrawingCacheEnabled(true);
    ImageView mirrorView = new ImageView(recyclerView.getContext());
    Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
    mirrorView.setImageBitmap(bitmap);
    view.setDrawingCacheEnabled(false);
    int[] locations = new int[2];
    view.getLocationOnScreen(locations);
    int[] parenLocations = new int[2];
    recyclerView.getLocationOnScreen(parenLocations);
    LayoutParams params = new LayoutParams(bitmap.getWidth(), bitmap.getHeight());
    params.setMargins(locations[0], (locations[1] - parenLocations[1]) + UIsUtils.dipToPx(44.0f), 0, 0);
    parent.addView(mirrorView, params);
    return mirrorView;
}
 
开发者ID:JackChan1999,项目名称:letv,代码行数:17,代码来源:ChannelFragmentAdapter.java

示例4: addMirrorView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * 添加需要移动的 镜像View
 */
private ImageView addMirrorView(ViewGroup parent, RecyclerView recyclerView, View view, int[] locations) {
    /**
     * 我们要获取cache首先要通过setDrawingCacheEnable方法开启cache,然后再调用getDrawingCache方法就可以获得view的cache图片了。
     buildDrawingCache方法可以不用调用,因为调用getDrawingCache方法时,若果cache没有建立,系统会自动调用buildDrawingCache方法生成cache。
     若想更新cache, 必须要调用destoryDrawingCache方法把旧的cache销毁,才能建立新的。
     当调用setDrawingCacheEnabled方法设置为false, 系统也会自动把原来的cache销毁。
     */
    view.destroyDrawingCache();
    view.setDrawingCacheEnabled(true);
    final ImageView mirrorView = new ImageView(recyclerView.getContext());
    Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
    mirrorView.setImageBitmap(bitmap);
    view.setDrawingCacheEnabled(false);
    int[] parenLocations = new int[2];
    recyclerView.getLocationOnScreen(parenLocations);
    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(bitmap.getWidth(), bitmap.getHeight());
    params.setMargins(locations[0], locations[1]/* - parenLocations[1]*/, 0, 0);
    parent.addView(mirrorView, params);

    return mirrorView;
}
 
开发者ID:angcyo,项目名称:RLibrary,代码行数:25,代码来源:ChannelAdapter.java

示例5: isChildInCenterX

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public static boolean isChildInCenterX(RecyclerView recyclerView, View view) {
    int childCount = recyclerView.getChildCount();
    int[] lvLocationOnScreen = new int[2];
    int[] vLocationOnScreen = new int[2];
    recyclerView.getLocationOnScreen(lvLocationOnScreen);
    int middleX = lvLocationOnScreen[0] + recyclerView.getWidth() / 2;
    if (childCount > 0) {
        view.getLocationOnScreen(vLocationOnScreen);
        if (vLocationOnScreen[0] <= middleX && vLocationOnScreen[0] + view.getWidth() >= middleX) {
            return true;
        }
    }
    return false;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:15,代码来源:ViewUtils.java

示例6: isChildInCenterY

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public static boolean isChildInCenterY(RecyclerView recyclerView, View view) {
    int childCount = recyclerView.getChildCount();
    int[] lvLocationOnScreen = new int[2];
    int[] vLocationOnScreen = new int[2];
    recyclerView.getLocationOnScreen(lvLocationOnScreen);
    int middleY = lvLocationOnScreen[1] + recyclerView.getHeight() / 2;
    if (childCount > 0) {
        view.getLocationOnScreen(vLocationOnScreen);
        if (vLocationOnScreen[1] <= middleY && vLocationOnScreen[1] + view.getHeight() >= middleY) {
            return true;
        }
    }
    return false;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:15,代码来源:ViewUtils.java

示例7: isChildInCenterY

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * @param recyclerView
 * @param view
 * @return
 */
public static boolean isChildInCenterY(@NonNull RecyclerView recyclerView, @NonNull View view) {
    int childCount = recyclerView.getChildCount();
    int[] lvLocationOnScreen = new int[2];
    recyclerView.getLocationOnScreen(lvLocationOnScreen);
    int middleY = lvLocationOnScreen[1] + recyclerView.getHeight() / 2;
    if (childCount > 0) {
        int[] vLocationOnScreen = new int[2];
        view.getLocationOnScreen(vLocationOnScreen);
        if (vLocationOnScreen[1] <= middleY && vLocationOnScreen[1] + view.getHeight() >= middleY) {
            return true;
        }
    }
    return false;
}
 
开发者ID:sanyuzhang,项目名称:CircularViewPager,代码行数:20,代码来源:CircularUtils.java

示例8: animate

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private void animate(RecyclerView sourceRecycler, RecyclerView targetRecycler, int position) {
        View view = sourceRecycler.getLayoutManager().findViewByPosition(position);
        if (view == null) {
            return;
        }
        getParentPoint();

        mFloatImg_1.setPivotX(mFloatImg_1.getWidth() / 2);
        mFloatImg_1.setPivotY(mFloatImg_1.getHeight() / 2);
        mFloatImg_1.setVisibility(View.VISIBLE);
        int[] initial = new int[2];
        view.getLocationOnScreen(initial);

        sourceRecycler.getLayoutManager().removeViewAt(position);

        BaseMultiAdapter sourceRecyclerAdapter = (BaseMultiAdapter) sourceRecycler.getAdapter();
        Filter removedItem = sourceRecyclerAdapter.getItem(position);

        int width = view.getWidth();
//        view.removeFromParent();
//        parent.addView(view)
//        view.layoutParams = view.layoutParams.apply {
//            this.width = width
//        }
        int[] container = new int[2];
        sourceRecycler.getLocationOnScreen(container);

        view.setTranslationX(initial[0] + 0.5f);
        view.setTranslationY((initial[1] - container[1]) + 0.5f);

//        @Suppress("UNCHECKED_CAST")
        SelectIconRvAdapter adapter = (SelectIconRvAdapter) targetRecycler.getAdapter();
        int newPos = adapter.add(removedItem);
        int[] targetCoordinates = getTarget(targetRecycler, newPos);


        float targetX = (targetCoordinates[0] - initial[0]) + 0.5f;
        float targetY = (targetCoordinates[1] - initial[1]) + 0.5f;
        long duration = calcDuration(targetX, targetY);

        animateTranslation(mFloatImg_1, targetX, targetY, duration);

//        ObjectAnimator animatorX = ObjectAnimator.ofFloat(mFloatImg_1, "translationX", initial[0], targetCoordinates[0]);
//        ObjectAnimator animatorY = ObjectAnimator.ofFloat(mFloatImg_1, "translationY", initial[1] - mStartY, targetCoordinates[1] - mStartY);
//        AnimatorSet animatorSet = new AnimatorSet();
//        animatorSet.playTogether(animatorX, animatorY);
//        animatorSet.setDuration(500);
//        animatorSet.start();

//        animateAlpha(removedItem, targetRecycler, view, duration)
//        animateTranslation(view, deltaX = targetX, deltaY = targetY, duration = duration)
    }
 
开发者ID:GaoGersy,项目名称:MultiSelecter,代码行数:53,代码来源:SelectionFragment.java


注:本文中的android.support.v7.widget.RecyclerView.getLocationOnScreen方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。