Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java – 并排两个ListViews并排Android大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图让两个并排的ListViews在某种程度上像GridView一样.我没有使用GridView的原因是因不支持Staggered Look.无论如何,到目前为止我有以下代码

< - 旧的,现在不相关的代码 - >

编辑:

我按照@Sam的建议做了并使用了以下代码

@H_607_8@lv1.setOnTouchListener(new OnTouchListener() { @Override public Boolean onTouch(View v,MotionEvent event) { if (touchsource == null) { touchsource = v; } if (v == touchsourcE) { lv2.dispatchTouchEvent(event); if (event.getAction() == MotionEvent.ACTION_Up) { clicksource = v; touchsource = null; } } return false; } }); lv1.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent,View view,int position,long id) { if (parent == clicksourcE) { //my own code here } } }); lv1.setOnScrollListener(new OnScrollListener() { @Override public void onScroll(AbsListView view,int firstVisibleItem,int visibleItemCount,int @R_852_10586@lItemCount) { if (view == clicksourcE) { } Boolean loadMore = /* maybe add a padding */ firstVisibleItem + visibleItemCount + 10 >= @R_852_10586@lItemCount; if (loadMorE) { //add items,load more } } @Override public void onScrollStateChanged(AbsListView view,int scrollStatE) { } }); lv2.setOnTouchListener(new OnTouchListener() { @Override public Boolean onTouch(View v,MotionEvent event) { if (touchsource == null) { touchsource = v; } if (v == touchsourcE) { lv1.dispatchTouchEvent(event); if (event.getAction() == MotionEvent.ACTION_Up) { clicksource = v; touchsource = null; } } return false; } }); lv2.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent,long id) { if (parent == clicksourcE) { } } }); lv2.setOnScrollListener(new OnScrollListener() { @Override public void onScroll(AbsListView view,int @R_852_10586@lItemCount) { if (view == clicksourcE) { } Boolean loadMore = /* maybe add a padding */ firstVisibleItem + visibleItemCount + 2 >= @R_852_10586@lItemCount; if (loadMorE) { } } @Override public void onScrollStateChanged(AbsListView view,int scrollStatE) { } });

我也在其中一个列表上使用@L_489_6@来创建交错@L_801_7@,我需要不惜一切代价保持这种错开.这主要是工作(上面的代码),但它很多时候都是unyncs.我已经发现这只是在我进行短暂的轻扫时.我不知道为什么,我找不到一个好的解决方案.在我看来,上述逻辑应该有效.

另外,万一重要,我使用UniversalImageLoader加载照片和一个简单的endlessscroll逻辑来加载更多照片(直接调用adapter.notifyDataSetChanged()).这个东西然看起来不太相关.即使照片被加载,我仍然可以看到它没有被发现.

我想明确一点:如果我做短暂的滑动(有时只是一般的重复滚动),我可以随意取消同步列表.

任何帮助表示赞赏.谢谢.

编辑2:

然而要找到一个好的解决方案.以下是我发现的解决方案不太有效:

>上述解决方案:经常使用unyncs
> Pinterest List View:没有OnScrollListener / onItemClick区分
> StaggeredGridView:没有onScrollListener
> Stag Project:没有onItemClick侦听器
> Linear Layout Method:没有onItemClick侦听器

有任何想法吗?谢谢.

解决方法

好的,所以我最终使用线性布局方法(参见问题)并使用setTag来使onItemClickListener工作,并使用CustomScrollView实现来获得无限List工作.

基本上,两个linearLayouts水平堆叠,在滚动视图内.它运行得相当好,加载速度更快.

此外,如果有帮助,加载我的图像SmartImageView.

如果有人想要代码,我可能会发布部分内容.

大佬总结

以上是大佬教程为你收集整理的java – 并排两个ListViews并排Android全部内容,希望文章能够帮你解决java – 并排两个ListViews并排Android所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。