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

熱點內容
蘋果電腦怎麼在桌面建新文件夾 瀏覽:526
蘋果上不小心買錯了app怎麼撤銷 瀏覽:845
蘋果手機在設置怎麼卸載app 瀏覽:317
我的世界基岩版正版伺服器地址 瀏覽:562
vci命令 瀏覽:834
快剪輯app如何提取音樂 瀏覽:950
gcc編譯器適合單片機開發嗎 瀏覽:886
自做app如何聯網 瀏覽:303
vs的編譯運行 瀏覽:89
app反編譯後怎麼看代碼 瀏覽:766
蘇寧程序員需要注意什麼 瀏覽:557
主力離場指標源碼 瀏覽:345
makefilelinux命令 瀏覽:214
電解壓力表三根線怎麼接 瀏覽:255
夠近物聯app怎麼樣 瀏覽:329
網路中心伺服器是什麼 瀏覽:64
php匹配多次 瀏覽:348
安卓手機怎麼找到不是正常文件的 瀏覽:291
應屆生如何成為程序員 瀏覽:648
麥德龍app怎麼更改配送方式 瀏覽:43