android中listview如何支持上下滑动,左右滑动且左右滑动时可以指定固定列数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中listview如何支持上下滑动,左右滑动且左右滑动时可以指定固定列数相关的知识,希望对你有一定的参考价值。

参考技术A 左右滑动可以用gallery,不知道LZ想要什么样的效果呢,不过提醒一下,不要用scrollview嵌套listview,效果不好哦~~ 参考技术B 不太明白楼主的具体意思.何为指定固定列数呢.

如果只是想滑动,在 listview 外面套一个 ScrollView 就可以了吧.追问

现在有这么一个需求,看到股票的排行列表吗??
需求是总共有20列数据,屏幕显示不下的时候需要用左右滚动。
但是滚动时,第一列(或者是第一列和第二列)要求保持固定不变。
曾经在网上查到有人用listview做了一个demo,可以根据手势进行实现。
但是,用户体验效果不好。
针对以上需求没有合适的思路,所以来求助大家帮忙了

参考技术C 楼上不要误人子弟啊,Google 不推荐scrolview嵌套listview啊,有问题,虽然能解决,但是不建议,楼主嗯问题可以解决的,自定义一个listview,处理它的触摸事件的分发,在滑动事件的时候,你把事件手动分给自己和它的子view就可以了 参考技术D 在我们滑动手机屏幕的时候(假设我们从右往左滑动),那么应该显示下一个View。
调用onFling方法中的mOnFlingListener.flingToNext();
flingToNext方法的是实现在MyViewFlipper类中,调用flingToNext方法的addView(mOnViewFlipperListener.getNextView(), 0);
getNextView的实现在ViewFlipperDemoActivity类中
第5个回答  2013-01-15 您的问题解决了么?
怎么解决的 ?

android中上下滑动listview,顶端和底端布局可以隐藏和显示

顶端是个导航区,中间是内容去,用listview实现,底端是用activityGroup分成四个频道,四个子activity,顶端导航区和中间内容区都是在子activity中;滑动listview内容时,导航区和频道区可以自动隐藏和显示
当listview上下滑动时,怎么把导航区和频道区自动隐藏和显示?

参考技术A list.setOnScrollListener(new OnScrollListener()
@Override
public void onScrollStateChanged(AbsListView view, int scrollState)
switch (scrollState)

case SCROLL_STATE_FLING:
//滑动中隐藏view
break;

case SCROLL_STATE_IDLE:
//空闲的时候显示
break;




@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount)


);
参考技术B listView.setOnScrollListener(new OnScrollListener()

@Override
public void onScrollStateChanged(AbsListView view, int scrollState)
// 当不滚动时
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE)

//第1次:scrollState = SCROLL_STATE_TOUCH_SCROLL(1) 正在滚动
//第2次:scrollState = SCROLL_STATE_FLING(2) 手指做了抛的动作(手指离开屏幕前,用力滑了一下)
//第3次:scrollState = SCROLL_STATE_IDLE(0) 停止滚动



@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount)
// TODO Auto-generated method stub

);追问

如果我向上滑动,导航和频道都出现,如果向下滑动都隐藏;比如findViewById(R.id.btn_top).setVisibility(View.VISIBLE);但是我怎么判断是向上滑动还是向下滑动???而且,最主要的是,我在子activity中做判断,底端的频道区是activityGroup共用的,能操作吗?

追答

listView.setOnTouchListener(new OnTouchListener()

@Override
public boolean onTouch(View v, MotionEvent event)
switch (event.getAction())
case MotionEvent.ACTION_DOWN:
if (FDLog.DEBUG)
Log.i(TAG, "onTouch--->ACTION_DOWN");

break;
case MotionEvent.ACTION_MOVE:
if (FDLog.DEBUG)
Log.i(TAG, "onTouch--->ACTION_MOVE");

if (mDownPos == -1)
mDownPos = event.getRawY();

mDeltaY = event.getRawY() - mDownPos;

if (mDeltaY ACTION_UP");

mDownPos = -1;
break;
default:
break;

return false;

);
可以通过发送消息给相应的UI显示相应的效果。

参考技术C 可以设置顶端和底端的高度或者位置,这样就相当于看不见了追问

你说的也是个办法,但是,我是在子activity中操作的,底端的频道区隐藏和显示,在子activity中发送广播?

以上是关于android中listview如何支持上下滑动,左右滑动且左右滑动时可以指定固定列数的主要内容,如果未能解决你的问题,请参考以下文章

android中上下滑动listview,顶端和底端布局可以隐藏和显示

Android--判断listview上下滑动的方法

Android 解决之NestedScrollView嵌套ListView后不能上下滑动的问题

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

android listview为啥不能滑动

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