android - 如何获取 ListView 上项目的Y坐标

标签 android listview coordinate

我的代码的目标是将 ImageView 移动到单击项目的中心,以某种方式“突出显示”它。为此,我试图获取 ListView 中单击的项目的 Y 坐标。 我的代码是:

private OnItemClickListener listview_auto_listener = new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View view, int position,
            long arg3) {

        int[] coords = new int[2];

        view.getLocationOnScreen(coords);

        // We need just the top coordinate
        int top = coords[1];
        // And bottom

        moveSelectedCar(top);

    }
};

moveSelectedCar 所在位置:

private void moveSelectedCar(int new_y) {

    TranslateAnimation _tAnim = new TranslateAnimation(
            TranslateAnimation.RELATIVE_TO_SELF,
            TranslateAnimation.RELATIVE_TO_SELF, last_y, new_y);

    _tAnim.setInterpolator(new DecelerateInterpolator());
    _tAnim.setDuration(800);
    _tAnim.setFillAfter(true);
    _tAnim.setFillEnabled(true);

    img_selected_car.startAnimation(_tAnim);

    last_y = new_y;

}

问题是这不会返回被单击项目的中心。

最佳答案

(在问题编辑中回答。转换为社区 wiki 答案。请参阅 Question with no answers, but issue solved in the comments (or extended in chat) )

OP 写道:

I've solved the problem!

private OnItemClickListener listview_auto_listener = new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View view, int position,
            long arg3) {

        int new_top = view.getTop() + view.getRight();
        int view_height = view.getHeight();

        moveSelectedCar(new_top - view_height);

    }
};

I Hope this helps somebody!

关于android - 如何获取 ListView 上项目的Y坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12664561/

相关文章:

android - listView 项目监听器

Android:当我使用 scrollTo(x,y) 滚动 ListView 时,ListView 不会重绘

java - collections.filter 会错吗?

java - 拍照后不调用 onActivityResult

Android蓝牙-createBond返回值

java - 使用 REGEX 验证坐标格式是否正确

mysql - 如何将(可变!) map 实现到网站中

android - 堆栈小部件动态删除和添加 View Android 3.0

android - 如何在同一个ListView中创建两个不同的LinearLayout?

python - 将 xarray 坐标替换为另一个坐标