Fel*_*aes 3 android recycler-adapter android-recyclerview
在a中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
}
});
}
Run Code Online (Sandbox Code Playgroud)
事实是,X和Y都总是返回0,他们不应该.我需要点击项目的X和Y来做一些动画.
我已经尝试将X和Y位置放在一个内部和一个OnGlobalLayoutListener内部OnPreDrawListener(当你需要活动的onCreate上的X和Y时它们都工作),但它们也返回0.
我正在使用GridLayoutManager我的RecyclerView:
recyclerView.setLayoutManager(new GridLayoutManager(Activity_alfabeto.this, 7, LinearLayoutManager.VERTICAL, false));
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
搞定了.我不得不使用这种方法:
int[] originalPos = new int[2];
view.getLocationInWindow(originalPos);
//originalPos[0] is my X
//originalPos[1] is my Y
Run Code Online (Sandbox Code Playgroud)
似乎getX和getY是相对于视图的父级,而不是它们在屏幕上的绝对位置.
view.getLocationOnScreen(originalPos);
Run Code Online (Sandbox Code Playgroud)
也可以用.
| 归档时间: |
|
| 查看次数: |
1913 次 |
| 最近记录: |