导航:首页 > 操作系统 > androidlistview滑动按钮

androidlistview滑动按钮

发布时间:2022-09-01 07:52:48

android listview上下滑动时为什么不触发点击事件

setOnItemClickListener()
触发的机制是,
手指点击时会产生触屏事件的
ACTION_DOWN,
这会根据xy坐标判断是哪个Item被点击,
手指提起时会触发ACTION_UP事件,
这样才是真正完成了整个点击的过程,从触发了setOnItemClickListener事件

如果
你点击之后移动了
会触发ACTION_MOVE事件,当手指移动超过一定距离再提起时,就不会再触发setOnItemClickListener
事件。
希望能帮到你。

㈡ android studio listview怎么滚动

按下按钮会触发ListView滚动或停止。

实现该功能并不难,下面给出主要代码MainActivity.java

?1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112 package cn.guet.levide;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;

public class MainActivity extends Activity implements OnClickListener {
private Button btn_up, btn_down, btn_stop; // 三个按钮
private ListView listview;
private Adapter adapter;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findBy();
init();
}

private void init() {
btn_up.setOnClickListener(this);
btn_down.setOnClickListener(this);
btn_stop.setOnClickListener(this);

adapter = new Adapter(this);
listview.setAdapter(adapter);
}

private void findBy() {
btn_up = (Button) findViewById(R.id.btn_scroll_up);
btn_down = (Button) findViewById(R.id.btn_scroll_down);
btn_stop = (Button) findViewById(R.id.btn_scroll_stop);

listview = (ListView) findViewById(R.id.listview);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_scroll_down:
listScrollDown();
break;
case R.id.btn_scroll_up:
listScrollUp();
break;
case R.id.btn_scroll_stop:
listScrollOff();
break;
}
}

Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
handler.removeCallbacks(run_scroll_down);
handler.removeCallbacks(run_scroll_up);
}
};

/**
* 向上滚动
*/
public void listScrollUp() {
listScrollOff();
handler.postDelayed(run_scroll_up, 0);
}

/**
* 向下滚动
*/
public void listScrollDown() {
listScrollOff();
handler.postDelayed(run_scroll_down, 0);
}

/**
* 停止滚动
*/
public void listScrollOff() {
handler.removeCallbacks(run_scroll_down);
handler.removeCallbacks(run_scroll_up);
}

Runnable run_scroll_up = new Runnable() {
@Override
public void run() {
/**
* public void smoothScrollBy (int distance, int ration)
*
* Added in API level 8 Smoothly scroll by distance pixels over ration milliseconds.
*
* Parameters
* distance Distance to scroll in pixels.
* ration Duration of the scroll animation in milliseconds.
*/
listview.smoothScrollBy(1, 10);
handler.postDelayed(run_scroll_up, 10);
}
};
Runnable run_scroll_down = new Runnable() {
@Override
public void run() {
listview.smoothScrollBy(-1, 10);
handler.postDelayed(run_scroll_down, 10);
}
};
}

实现ListView位置变动的是smoothScrollBy方法。

?1
2
3
4
5
6 public void smoothScrollBy (int distance, int ration)
Smoothly scroll by distance pixels over ration milliseconds.

Parameters
distance Distance to scroll in pixels.
ration Duration of the scroll animation in milliseconds.

工程源码

Android listview 代码控制上下移动

㈢ android listView 中添加了一个滑动按钮 slipButton报错

我自己一个人弄的公司的产品客户端,所以还是想记录下来以免忘记或者丢失...
在我的上一篇博文(点击打开链接)是一个文件管理的东西,基础组件也是ListView所以在此只是改动一下而已。
单击:
点击出现按钮比较简单只需要替换上文中file_row.xml的checkbox为button就可以,然后自己实现onclicklistener就行了,唯一要注意的就是要在xml文件中的button的android:clickable属性设置为true就可以了。
滑动:
滑动来说也相对比较简单需要在上文种FileAdapter.java类中getView方法里的convertView参数对象设置ontouchlistener就可以了,具体看代码:

[java] view plain
@Override
public View getView(int position,View convertView,ViewGroup parent){
ViewHolder holder;

if(convertView == null){
convertView = mInflater.inflate(R.layout.filemanage, null);
convertView.setOnTouchListener(new OnTouchListener(){

@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction())//根据动作来执行代码
{
case MotionEvent.ACTION_MOVE://滑动
Toast.makeText(context, "move...", Toast.LENGTH_SHORT).show();
break;
case MotionEvent.ACTION_DOWN://按下
Toast.makeText(context, "down...", Toast.LENGTH_SHORT).show();
DownX = event.getX();
break;
case MotionEvent.ACTION_UP://松开
UpX = event.getX();
Toast.makeText(context, "up..." + Math.abs(UpX-DownX), Toast.LENGTH_SHORT).show();
if(Math.abs(UpX-DownX) > 20){
ViewHolder holder = (ViewHolder) v.getTag();
holder.cBox.setVisibility(View.VISIBLE);
}
break;
default:
}
return true;
}
});
holder = new ViewHolder();
VHs.add(holder);
holder.text = (TextView) convertView.findViewById(R.id.filetext);
holder.text.setTextColor(context.getResources().getColor(R.color.text_color));
holder.icon = (ImageView) convertView.findViewById(R.id.fileicon);
holder.cBox = (Button) convertView.findViewById(R.id.delete_btn);
holder.cBox.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Toast.makeText(context, "btn click...", Toast.LENGTH_SHORT).show();
}
});
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
File f=new File(paths.get(position).toString());
if(items.get(position).toString().equals("goroot")){
holder.text.setText("返回根目录");
holder.icon.setImageBitmap(mIcon1);
holder.cBox.setVisibility(isVisibility.get(position));
}else if(items.get(position).toString().equals("goparent")){
holder.text.setText("返回上一级");
holder.icon.setImageBitmap(mIcon2);
holder.cBox.setVisibility(isVisibility.get(position));
}else{
holder.text.setText(f.getName());
if(f.isDirectory()){
holder.icon.setImageBitmap(mIcon3);
holder.cBox.setVisibility(isVisibility.get(position));
}else{
holder.icon.setImageBitmap(mIcon4);
holder.cBox.setVisibility(isVisibility.get(position));
}
}
return convertView;
}

㈣ 怎么解决Android listview 单个item的左右滑动和整个listview上下滑动的冲突问题

你是listView把滑动事件截取了,然后item就不能响应滑动了吗?这样可以重写listView,重写onInterceptTouchEvent()

安卓怎么让listview和布局其他内容一起滑动

把你所有想一起动的控件放到一个scrollview下,然后listview用这个
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
int mExpandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, mExpandSpec);
}
}

scrollview‍用这个

/**
* 解决ScrollView嵌套ViewPager出现的滑动冲突问题
*/
public class MyScrollView extends ScrollView {
View.OnTouchListener mGestureListener;
// 滑动距离及坐标
private float xDistance, yDistance, xLast, yLast;
public MyScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
xDistance = yDistance = 0f;
xLast = ev.getX();
yLast = ev.getY();
break;
case MotionEvent.ACTION_MOVE:
final float curX = ev.getX();
final float curY = ev.getY();

xDistance += Math.abs(curX - xLast);
yDistance += Math.abs(curY - yLast);
xLast = curX;
yLast = curY;

if(xDistance > yDistance){
return false;
}
}
return super.onInterceptTouchEvent(ev);
}
}

㈥ android listview如何加可点击滑动的滚动条

listview可以相应滚动啊,不过是要用鼠标来滚动,电阻屏是只能点击的,不能实现啊。我想给listview的滚动条设置成带滑块的,可以点击来拖动啊,但是那样要listview的记录有好多项的时候才会出来滑块的,我想知道可不可以有什么别的方法可以达到那个效果的?

㈦ android滑动开关按钮实现方式有几种

关于Android中View控件的分类可以分为以下几类:
1. 文本类:
TextView、EditText、AutoCompleteTextView、MultAutoCompletTextView 、(TextSwitcher) 、(DigitalClock)
ExtractEditText、CheckedTextView、Chronometer

2.按钮类:
Button、CheckBox、RadioButton(RadioGroup) 、ToggleButton 、(ImageButton ) CompoundButton

2. 缩放按钮:
ZoomButton、ZoomControls

3. 图片类:
ImageView、ZoomButton、ImageButton、(ImageSwitcher ) QuickContactBadge

4. 时间控件:
DigitalClock、AnalogClock、TimePicker、DatePicker

5.进度显示:
ProgressBar、AbsSeekBar、SeekBar、RatingBar(星星评分)

6.导航: TabHost、TabWidget。

7.视频媒体:
VideView、MediaController

8.Dialog对话框
CharacherPickerDialog、AlertDialog、DatePickerDialog、ProgressDialog、TimePickerDialog

9. 布局类控件:
AbsoluteLayout、LinearLayout、RadioGroup 、TableLayout、 TableRow、RelativeLayout、FrameLayout

10.需要适配器的布局类:
AdapterView、AbsListView、GridView、ListView、AbsSpinner、Gallery Spinner

11.滚动条: HorizontalScrollView、ScrollView

12.网页: WebView

13.动画: ViewAimator、ViewFilpper、ViewSwitcher、ImageSwitcher、TextSwitcher

㈧ android listview为什么不能滑动

  1. 你在listview上无意中加了一层view,使listview无法接收滑动事件

  2. 该listview在scrollview上时,是无法获取滑动事件,只会被scrollview拦截。

  3. listview中数据不够多,没有超越屏幕的存在,自然不能滑动。

阅读全文

与androidlistview滑动按钮相关的资料

热点内容
电脑编程属于it吗 浏览:353
如何分辨文件夹 浏览:714
哪里能学懂通达信每个源码的含义 浏览:833
命令式过去式形式 浏览:450
车铣复合铣六角编程实例 浏览:743
android通知的呼吸灯 浏览:907
单片机排针的功能 浏览:849
华为的服务器现在被什么公司收购 浏览:285
服务器粘包怎么处理 浏览:726
怎么进创意工坊的服务器 浏览:786
空调压缩机加变频器 浏览:968
加密货币有哪些可以玩 浏览:993
腾讯云服务器如何生成备案授权码 浏览:950
计算机学算法好还是人工智能 浏览:500
java命令运行eclipse 浏览:979
u盘加密其他办法 浏览:808
zm螺纹算法 浏览:778
excel与数据分析pdf 浏览:153
特斯拉的智能算法 浏览:204
单片机开发费用 浏览:937