导航:首页 > 操作系统 > androidlistview横向滑动

androidlistview横向滑动

发布时间:2022-07-12 12:20:26

‘壹’ android listview怎么左右滑动

提供点伪代码给你看看

class News {
int id; // 新闻标识
String summary; // 概述
String imageUrl; // 图片资源链接
}

class NewsDetail {
int id; // 新闻标识
String summary; // 概述
String detail; // 详细
}
我们的ListView对应的Adapter里面引用的数据源就是
ArrayList<News>列表。 可以把这个列表缓存在Application里做一个全局变量。

然后你点击进入一个新闻详情

OnItemClickListener(new ...() {

void onItemClick() {
Intent i = new Intent(context, NewsDetailActivity.class);
i.putExtra("id", id);
startActivity(i);
}
});
NewsDetailActivity是简单的新闻详情页面
里面主要的控件是ViewPager,他的数据源是根据之前的NewsList而来的。 ArrayList<NewsDetail> detailList = new ArrayList<NewsDetail>();

onCreate 方法里面最后通过一个异步方式去获取新闻的详情,然后显示出来。

class NewsDetailTask extends AsyncTask<String, Void, Void> {
onBackground() {
// 缓存里面获取新闻详情或者
// http get/post("...");获取新闻详情
// 显示出来
}
}
设置OnPageChangeListener,在onPageChanged方法里面去调整当前页面展示的新闻详情

class MyOnPageChangeListener implements OnPageChangeListener {
void onPageSelected(int position) {

int id = ((XXApplication) getApplication()).getNewsList().get(position).getId();
new NewsDetailTask("" + id);
}
}
就可以了。

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

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

‘叁’ 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列表如何横向滚动

如果在你的源码基础上改好像不太可能,你把textview改成多行显示吧

‘伍’ android 如何给listview添加横向滚动条,网上说的在listview外层加horizontalscrollview没有用啊

谁说没用,亲测可以

xml布局里写:

<HorizontalScrollView

android:layout_width="200dp"

android:layout_height="fill_parent">

<ListView

android:layout_width="400dp"

android:layout_height="fill_parent"

android:footerDividersEnabled="false"

android:headerDividersEnabled="false"

android:scrollingCache="false"

/>

</HorizontalScrollView>

一个横向滚动且纵向滚动的listView不就出来了

‘陆’ android 怎么让listview横着

CSDN论坛去看看。。
Dim lvhti As LVHITTESTINFO
Call GetCursorPos(lvhti.pt)
Call ScreenToClient(listview1.hwnd, lvhti.pt)
Call SendMessage(listview1.hwnd, LVM_SUBITEMHITTEST, 0, lvhti.pt)

i = lvhti.iItem
If i > = 0 Then
i=i+1 '这时候的i就是点的行数
end if
以上代码写在双击事件中,
其中用的到API函数和常量,你自己查资料。

‘柒’ android listview为什么不能滑动

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

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

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

‘捌’ android listview如何按时加滚动到顶部

listview的一些方法:

1.public
void setSelection (int position)

position位置的item置顶(即position位置的item到listview的最顶端),但是,没有从原来位置到顶端的滑动效果。

2.public
void setSelectionFromTop (int position, int y)

与setSelection 类似。setSelection(position)就是setSelectionFromTop (position,0)

选中position指定的项目,并将所选项置于距离ListView顶端y像素的位置

参数

position 需要选中的项目的索引(从0开始)

y
距离ListView(包括间隙)顶端的位置

3.public
void smoothScrollToPositionFromTop (int position, int
offset)

平滑滚动到指定的适配器位置。 指定位置的视图会滚动到相对顶边偏移 offset 像素的位置显示。
如果无法做到(比如该偏移量会使首尾条目超越列表边缘),会滚动到尽量接近的位置。

参数

position 滚动到的位置

offset 滚动结束时,指定 position 条目距离视图顶部的像素数

当offset=0时,可以把position位置的item置顶,而且带有滑动效果,即会从原来位置轻轻滑动到最顶

端位置。

测试:
可以顺利滚动,返回滚动也很顺利,滑动顺畅

4、public void
smoothScrollToPositionFromTop(int position)

参数:

position 滚动到的位置

带有滑动效果的滚动到指定位置。

如何判断其内容已滚动到最顶部或者最底部看

getListView().setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if(firstVisibleItem==0){
Log.e("log", "滑到顶部");
}
if(visibleItemCount+firstVisibleItem==totalItemCount){
Log.e("log", "滑到底部");
}
}
});

平滑的滚动listview到一个指定位

package com.android.contacts.widget;

import android.content.Context;

import android.util.AttributeSet;

import android.widget.ListView;

public class AutoScrollListView extends ListView {

private static final
float PREFERRED_SELECTION_OFFSET_FROM_TOP = 0.33f;

private int
mRequestedScrollPosition = -1;

private boolean
mSmoothScrollRequested;

public
AutoScrollListView(Context context) {

super(context);

}

public
AutoScrollListView(Context context, AttributeSet attrs) {

super(context, attrs);

}

public
AutoScrollListView(Context context, AttributeSet attrs, int
defStyle) {

super(context, attrs, defStyle);

}

public void
requestPositionToScreen(int position, boolean smoothScroll) {

mRequestedScrollPosition = position;

mSmoothScrollRequested = smoothScroll;

requestLayout();

}

@Override

protected void
layoutChildren() {

super.layoutChildren();

if (mRequestedScrollPosition == -1) {

return;

}

final int position =
mRequestedScrollPosition;

mRequestedScrollPosition = -1;

int firstPosition = getFirstVisiblePosition() +
1;

int lastPosition =
getLastVisiblePosition();

if (position >= firstPosition &&
position <= lastPosition) {

return; //
Already on screen

}

final int offset = (int) (getHeight() *
PREFERRED_SELECTION_OFFSET_FROM_TOP);

if (!mSmoothScrollRequested) {

setSelectionFromTop(position, offset);

// Since
we have changed the scrolling position, we need to redo child
layout

// Calling
"requestLayout" in the middle of a layout pass has no effect,

// so we
call layoutChildren explicitly

super.layoutChildren();

} else {

// We will
first position the list a couple of screens before or after

// the new
selection and then scroll smoothly to it.

int
twoScreens = (lastPosition - firstPosition) * 2;

int
preliminaryPosition;

if
(position < firstPosition) {

preliminaryPosition = position + twoScreens;

if (preliminaryPosition >=
getCount()) {

preliminaryPosition = getCount() - 1;

}

if (preliminaryPosition <
firstPosition) {

setSelection(preliminaryPosition);

super.layoutChildren();

}

} else
{

preliminaryPosition =
position - twoScreens;

if (preliminaryPosition <
0) {

preliminaryPosition = 0;

}

if
(preliminaryPosition > lastPosition) {

setSelection(preliminaryPosition);

super.layoutChildren();

}

}

smoothScrollToPositionFromTop(position, offset);

}

}

}

‘玖’ android HorizontalScrollView, 横向滚动菜单,点击项,控制移动的距离

有好多实现方法,简单的就是用GridView(安卓自带网格布局)或者HorizontalListView(自定义横向list,网上有好多的)
再就是在activity中ScrollView自定义添加子View
还可以用ViewPager,TabHost

阅读全文

与androidlistview横向滑动相关的资料

热点内容
华为adb命令行刷机 浏览:963
人像摄影pdf 浏览:755
解压文件密码怎样重新设置手机 浏览:999
高考指南pdf 浏览:693
爬虫python数据存储 浏览:240
u盘怎么取消加密 浏览:429
567除以98的简便算法 浏览:340
pdf手机如何解压 浏览:15
python描述器 浏览:60
战地联盟3解压密码 浏览:805
s型命令 浏览:25
php年薪5年 浏览:71
如何上网上设个人加密账户 浏览:44
linux打开ssh服务 浏览:78
微信位置可以加密吗 浏览:470
算法蛮力法 浏览:438
随机排练命令 浏览:147
python多进程并发 浏览:41
安卓软件安装如何躲避安全检测 浏览:647
奇幻潮翡翠台源码百度云盘 浏览:187