List of usage examples for android.support.v4.widget NestedScrollView getTop
@ViewDebug.CapturedViewProperty public final int getTop()
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; } }