導航:首頁 > 操作系統 > 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滑動按鈕相關的資料

熱點內容
程序員可以干什麼 瀏覽:70
績效考核權重分配演算法 瀏覽:524
android應用logo 瀏覽:898
光遇安卓服墓土商店什麼時候開 瀏覽:566
月收益翻倍的源碼 瀏覽:638
asop源碼放在哪裡 瀏覽:989
電腦伺服器密碼怎麼找 瀏覽:574
jdp轉換pdf 瀏覽:749
把pdf導入iphone 瀏覽:508
米哈游租賃的雲伺服器是哪個 瀏覽:524
android直接打電話 瀏覽:1016
ubuntu停止命令 瀏覽:283
cnc攻絲編程 瀏覽:869
換個手機號碼app怎麼注冊 瀏覽:320
怎麼下載小猴口算app 瀏覽:115
輕鏈app的貨怎麼樣 瀏覽:625
電腦里的u盤如何加密 瀏覽:372
我的世界全部版本伺服器下載地址 瀏覽:50
交換原理pdf 瀏覽:230
菜鳥驛站app怎麼邀請新人 瀏覽:449