Java 如何获取X&;adnroid中recyclerView项目的Y坐标?
我想获得Java 如何获取X&;adnroid中recyclerView项目的Y坐标?,java,android,android-recyclerview,Java,Android,Android Recyclerview,我想获得recyclerview项目视图的X和Y坐标。我使用getLocationOnScreen()方法,但它对X和Y都返回0。 如何获取视图的X/Y 由于我是android开发新手,请帮助我:) 您的问题是因为项目的视图没有完全创建,getLocationOnScreen()method为X/Y返回0 通过在onBindViewHolder()中实现addOnGlobalLayoutListener()方法,可以实现所需的坐标 如下所示: @Override public void onBi
recyclerview
项目视图的X和Y坐标。我使用getLocationOnScreen()
方法,但它对X和Y都返回0。
如何获取视图的X/Y
由于我是android开发新手,请帮助我:)
您的问题是因为项目的视图没有完全创建,
getLocationOnScreen()
method为X/Y返回0
通过在onBindViewHolder()
中实现addOnGlobalLayoutListener()
方法,可以实现所需的坐标
如下所示:
@Override
public void onBindViewHolder(@NonNull final TaskViewHolder holder, final int position) {
Model model = datalist_model.get(position);
holder.tv_title.setText(model.getTitle());
holder.tv_comment.setText(model.getComment());
holder.itemView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//Remove the listener before proceeding
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
holder.itemView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
else
holder.itemView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
int[] screen = new int[2];
holder.iv_status.getLocationOnScreen(screen);
Log.d(TAG, "x :" + screen[0] + " , y : " + screen[1]);
}
});
}
您的问题是因为项目的视图没有完全创建,
getLocationOnScreen()
method为X/Y返回0
通过在onBindViewHolder()
中实现addOnGlobalLayoutListener()
方法,可以实现所需的坐标
如下所示:
@Override
public void onBindViewHolder(@NonNull final TaskViewHolder holder, final int position) {
Model model = datalist_model.get(position);
holder.tv_title.setText(model.getTitle());
holder.tv_comment.setText(model.getComment());
holder.itemView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//Remove the listener before proceeding
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
holder.itemView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
else
holder.itemView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
int[] screen = new int[2];
holder.iv_status.getLocationOnScreen(screen);
Log.d(TAG, "x :" + screen[0] + " , y : " + screen[1]);
}
});
}
你想实现什么?这是否回答了你的问题@ivan wooll我想他想得到在RecycleService中创建的视图的x/y坐标。你想实现什么?这是否回答了你的问题@ivan wooll我想他想得到在recyclerView中创建的视图的x/y坐标