Я сделал это не с фрагментами, а с содержимым фрагментов.
Если вы используете findById()
в действии, которое найдет идентификатор чего-либо завышенного в этом действии (включая содержимое фрагмента и т. Д.).
Затем вы можете использовать что-то вроде View.getLocationOnScreen (int []) , это должно дать вам x и y вида на экране. Никогда не пробовал это на фрагменте, но если ваш фрагмент обернут макетом, то проблем не должно быть.
Надеюсь, это поможет?
На самом деле это может помочь, возможно, потребуется изменить, чтобы получить два представления, так как этот метод находится внутри пользовательского RelativeLayout, который я сделал:
/**
* Will return the X,Y of the Anchor view relative to this relative layout.. So It doesn't
* matter if the anchor view is nested, or any any other layout, this WILL find its location
* relative too this {@link HelpRelativeLayout}.
*
* @author chris.jenkins
* @param anchor
* @return
*/
private int[] calculateAnchorViewPosition(View anchor)
{
int[] loc = new int[2];
int[] conLoc = new int[2];
// getLocationInWindow(conLoc);
getLocationOnScreen(conLoc);
// anchor.getLocationInWindow(loc);
anchor.getLocationOnScreen(loc);
// get correct top left pos + half the h/w of the anchor
loc[0] = (loc[0] - conLoc[0]);
loc[1] = (loc[1] - conLoc[1]);
MyLog.d(loc[0] + " " + loc[1]);
return loc;
}