Android ListView列表中的子item随手指水平左右滑动,滑动删除基础

42 阅读1分钟

super.onCreate(savedInstanceState);

listView = getListView();

adapter = new ListViewAdapter(this, android.R.layout.simple_list_item_1);

listView.setAdapter(adapter);

// listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

// @Override

// public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

// Toast.makeText(getApplicationContext(), position + "", Toast.LENGTH_SHORT).show();

// }

// });

}

private class ListViewAdapter extends ArrayAdapter {

private Context context;

private int resId;

public ListViewAdapter(@NonNull Context context, int resource) {

super(context, resource);

this.context = context;

this.resId = resource;

}

@NonNull

@Override

public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {

if (convertView == null) {

convertView = LayoutInflater.from(context).inflate(resId, null);

}

TextView textView = convertView.findViewById(android.R.id.text1);

textView.setText(position + "");

convertView.setOnTouchListener(new View.OnTouchListener() {

private int oldX;

private int RIGHT_EDGE = listView.getRight();

@Override

public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

oldX = (int) event.getX();

break;

case MotionEvent.ACTION_MOVE:

int dx = (int) event.getX() - oldX;

int right = v.getRight() + dx;

if (right > RIGHT_EDGE) {

Log.d(TAG, "超出右边");

break;

}

v.layout(v.getLeft() + dx, v.getTop(), v.getRight() + dx, v.getBottom());

break;

}

return true;

}

});

return convertView;

}

@Override public int getCount() { return 20; } } }

文末

不管怎么样,不论是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题做好全面的准备,当然除了这个还需要在平时把自己的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流啊~

小编将自己6年以来的面试经验和学习笔记都整理成了一个**937页的PDF,**以及我学习进阶过程中看过的一些优质视频教程。**上传在我的GitHub中:Android架构视频+BATJ面试专题PDF+学习笔记**请君自取,无偿分享!

其实看到身边很多朋友抱怨自己的工资很低,包括笔者也是一样的,其原因是在面试过程中没有给面试官一个很好的答案。所以笔者会持续更新面试过程中遇到的问题,也希望大家和笔者一起进步,一起学习。