Example usage for android.support.v4.widget NestedScrollView getTop

List of usage examples for android.support.v4.widget NestedScrollView getTop

Introduction

In this page you can find the example usage for android.support.v4.widget NestedScrollView getTop.

Prototype

@ViewDebug.CapturedViewProperty
public final int getTop() 

Source Link

Document

Top position of this view relative to its parent.

Usage

From source file:com.cryart.sabbathschool.viewmodel.SSReadingViewModel.java

@Override
public void onSelectionStarted(float x, float y) {
    if (ssReadingActivityBinding != null) {
        LinearLayout view = ssReadingActivityBinding.ssReadingViewPager.findViewWithTag(
                "ssReadingView_" + ssReadingActivityBinding.ssReadingViewPager.getCurrentItem());
        NestedScrollView scrollView = view.findViewById(R.id.ss_reading_view_scroll);

        y = y - scrollView.getScrollY() + ssReadingActivityBinding.ssReadingViewPager.getTop();

        DisplayMetrics metrics = new DisplayMetrics();
        ((SSReadingActivity) context).getWindowManager().getDefaultDisplay().getMetrics(metrics);
        ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) ssReadingActivityBinding.ssContextMenu.ssReadingContextMenu
                .getLayoutParams();//  w w  w.  j  a va  2 s.co  m

        int contextMenuWidth = ssReadingActivityBinding.ssContextMenu.ssReadingContextMenu.getWidth();
        int contextMenuHeight = ssReadingActivityBinding.ssContextMenu.ssReadingContextMenu.getHeight();

        int screenWidth = metrics.widthPixels;
        int screenHeight = metrics.heightPixels;

        int margin = SSHelper.convertDpToPixels(context, 20);
        int jumpMargin = SSHelper.convertDpToPixels(context, 60);

        int contextMenuX = (int) x - (contextMenuWidth / 2);
        int contextMenuY = scrollView.getTop() + (int) y - contextMenuHeight - margin;

        if (contextMenuX - margin < 0) {
            contextMenuX = margin;
        }

        if (contextMenuX + contextMenuWidth + margin > screenWidth) {
            contextMenuX = screenWidth - margin - contextMenuWidth;
        }

        if (contextMenuY - margin < 0) {
            contextMenuY = contextMenuY + contextMenuHeight + jumpMargin;
        }

        params.setMargins(contextMenuX, contextMenuY, 0, 0);
        ssReadingActivityBinding.ssContextMenu.ssReadingContextMenu.setLayoutParams(params);
        ssReadingActivityBinding.ssContextMenu.ssReadingContextMenu.setVisibility(View.VISIBLE);
        highlightId = 0;
    }
}