android - ViewHolder Android 的 onTouch 方法

标签 android android-layout android-animation android-view

<分区>

我有一个实现 OnTouchListener 类的 BaseAdapter。 onTouch 方法是:

@Override
public boolean onTouch(View v, MotionEvent event) {

    switch (event.getAction()) {

    case MotionEvent.ACTION_DOWN: {
        startY = event.getY();
        break;
    }

    case MotionEvent.ACTION_UP: {
        float endY = event.getY();

        if (endY > startY) {
            layoutComments.startAnimation(animDown);
            layoutComments.setVisibility(View.GONE);
        }

    }

    }
    return true;
}

问题在于 layoutComments 变量被插入到 getView 方法中声明的 ViewHolder 中:

public View getView(int position, View convertView, ViewGroup parent) {
    final ViewHolder holder;
...
...

程序无法查看变量,有两个编译错误。如何从 onTouch 的变量 v 中获取 ViewHolder?

最佳答案

将 ViewHolder 设置为 View 上的标记不是一般的设计实践,convertView.setTag(holder),因此只要您通过以下方式引用 View ,就可以检索它: (ViewHolder) view.getTag()

关于android - ViewHolder Android 的 onTouch 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17406539/

相关文章:

android - retrofit2 为每个 onNext 返回 1 个对象的可观察对象

java - 基于语法的语音识别的 Android 代码

android - 在选项卡之间滑动时折叠 CollapsingToolbarLayout

动态加载图像的Android动画

android - animation.start() 或 animation.startNow() 不会立即启动动画

Android - 通过点击另一个布局来动 Canvas 局

java - 单击监听器未在 ListFragment 中调用

android - 使线性布局水平滚动

java - WebViews 的 ViewGroup 历史记录问题

java - Android - 动态设置按钮的布局宽度