在手势监听的按下判断时候isRemark = true;报错
这是前面定义的变量:
//标记,当前是在listview的最顶端按下
boolean isRemark;
//按下时的Y值
int startY;
报错截图:

当我把这行删掉之后,又发现下面也报错了:

很简单的变量赋值,为什么会报错呢?更奇怪的是,第一张图的中的两行只有第一行会报错,删掉之后第二行又报错了,希望得到答复,谢谢了。
附上全部代码:
package top.omooo.admin.mybaseadapterpractice;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.ListView;
/**
* Created by Omooo on 2017/8/31.
*/
public class ReFreshListView extends ListView implements AbsListView.OnScrollListener{
//顶部布局文件
View header;
//顶部布局文件的高度
int headerHeight;
//当前第一个可见的item的位置
int firstVisibleItem;
//标记,当前是在listview的最顶端按下
boolean isRemark;
//按下时的Y值
int startY;
public ReFreshListView(Context context) {
super(context);
initView(context);
}
public ReFreshListView(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context);
}
public ReFreshListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context);
}
//初始化界面,添加顶部布局文件到listview中
private void initView(Context context) {
LayoutInflater inflater = LayoutInflater.from(context);
header = inflater.inflate(R.layout.list_header, null);
measureView(header);
headerHeight=header.getMeasuredHeight();
Log.i("2333---headerHeight", "headerHeight= "+headerHeight);
topPadding(-headerHeight);
//添加到ListView中
this.addHeaderView(header);
this.setOnScrollListener(this);
}
//设置header的上边距
private void topPadding(int topPadding) {
header.setPadding(header.getPaddingLeft()
, topPadding
, header.getPaddingRight()
, header.getPaddingBottom());
}
//通知父布局占用的宽和高
private void measureView(View view) {
ViewGroup.LayoutParams params = view.getLayoutParams();
if (params == null) {
params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
}
int width = ViewGroup.getChildMeasureSpec(0, 0, params.width);
int height;
int tempHeigth = params.height;
if (tempHeigth > 0) {
height = MeasureSpec.makeMeasureSpec(tempHeigth, MeasureSpec.EXACTLY);
} else {
height = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
}
view.measure(width,height);
}
@Override
public void onScrollStateChanged(AbsListView absListView, int i) {
}
@Override
public void onScroll(AbsListView absListView, int i, int i1, int i2) {
this.firstVisibleItem = i;
}
//手势监听
@Override
public boolean onTouchEvent(MotionEvent ev) {
return super.onTouchEvent(ev);
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
if (firstVisibleItem == 0) {
startY = (int) ev.getY();
}
}
}
}