在一个
事情是,无论X和Y,它们总是返回0,而它们不应该。我需要所点击项目的X和Y来执行一些动画。
我已经尝试在OnGlobalLayoutListener和OnPreDrawListener中获取X和Y位置(在Activity的onCreate中需要X和Y时两者都有效),但它们也返回0。
我正在使用GridLayoutManager在我的RecyclerView上:
RecyclerView
中,我试图获取点击项目的 X 和 Y 位置。这是在我的适配器内部实现的:@Override
public void onBindViewHolder(AlfabetoViewHolder holder, final int position) {
// setImage(holder.imageButton, images.get(position));
holder.imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.getX(); // This is 0, but it shouldn't be!
view.getY(); // This is also 0.
executaSomAnimacaoLetra(sounds.get(position), Utils.getResourceFromFile(popups.get(position), context), view); // I do some stuff here
}
});
}
事情是,无论X和Y,它们总是返回0,而它们不应该。我需要所点击项目的X和Y来执行一些动画。
我已经尝试在OnGlobalLayoutListener和OnPreDrawListener中获取X和Y位置(在Activity的onCreate中需要X和Y时两者都有效),但它们也返回0。
我正在使用GridLayoutManager在我的RecyclerView上:
recyclerView.setLayoutManager(new GridLayoutManager(Activity_alfabeto.this, 7, LinearLayoutManager.VERTICAL, false));
非常感谢您的帮助。
view.post(new Runnable() { ... view.getX(); view.getY(); });
,以便让UI开始显示,你试过了吗? - Blo