热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android图文混排,且有ListView,内容已经占满一屏,怎么实现上下滑动

我做的那个页面是Android的图文混排,效果如下:我把ScrollView将最外层的LinearLayout包裹之后页面就运行不出来了,而且ListView的数据只能显示一行。。。。查
我做的那个页面是Android的图文混排,效果如下:

我把ScrollView将最外层的LinearLayout包裹之后页面就运行不出来了,而且ListView的数据只能显示一行。。。。
查资料说,ScrollView和ListView不能同时使用。该怎么做才能实现我这个页面的上下滑动呢?
新手,刚开始Android开发,求大虾们帮忙~

16 个解决方案

#1


另外,我中间的文字是用的两个listView显示的,虽然显示功能实现了,但总感觉怪怪的。。

#2


这个本身页面的逻辑就有问题,从我观察,lz的listview那块的内容应该是固定的吧,或者至少是制式的。制式的用listview意义本来就不是很大,弄成多行的textview即可。这样不就解决了lz的问题。

#3


把这些东西都放到scrollview中

#4


引用 2 楼 icyblood198999 的回复:
这个本身页面的逻辑就有问题,从我观察,lz的listview那块的内容应该是固定的吧,或者至少是制式的。制式的用listview意义本来就不是很大,弄成多行的textview即可。这样不就解决了lz的问题。

不是固定的,是从数据库里动态读取得。
我也不太会布局,只不过弄完之后跟原型图的样子像罢了。。。

#5


引用 3 楼 bdmh 的回复:
把这些东西都放到scrollview中

我测试过,即使单独的把一个ListView放到ScrollView里,ListView中的内容只能显示一行。。。更何况,我在图中的布局用了俩ListView。。。

#6


其实就是scrollview的嵌套问题,你在一开始的时候获取listview单个item的高度然后计算出listview的高度,在代码动态设置下就可以了

#7


上面是解决listview只展示一行的问题,至于scrollview不能滑动你可以试着自定个listview,把onInterceptTouchEvent的返回值改为false 

#8


引用 6 楼 chris_wsy 的回复:
其实就是scrollview的嵌套问题,你在一开始的时候获取listview单个item的高度然后计算出listview的高度,在代码动态设置下就可以了

我原来的ListView的高度设置的是 wrap_content,现在改成了具体的值,测试了一下可以滑动了。。。。
具体怎么动态获取item的高度,然后计算listview的告诉,我再看看。

#9


最简单就是linearLayoyt 使用addView(view),反正不涉及大量数据。通过遍历获取数据,填充到自定义view再add就可以了

#10


引用 4 楼 wlccomeon 的回复:
Quote: 引用 2 楼 icyblood198999 的回复:

这个本身页面的逻辑就有问题,从我观察,lz的listview那块的内容应该是固定的吧,或者至少是制式的。制式的用listview意义本来就不是很大,弄成多行的textview即可。这样不就解决了lz的问题。

不是固定的,是从数据库里动态读取得。
我也不太会布局,只不过弄完之后跟原型图的样子像罢了。。。


我的意思是他的数量上是可控的,可以理解为表格,只不过内容不同罢了,如果每个产品稍有区别,可以利用动态生成linerlayout,然后动态根据数量add进你的view里,就躲避了listview嵌套滚动的问题。

#11


        @Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
通过onMeasure计算呢?

#12


用下拉刷新+自定义适配

#13


用测量来做,高度通过代码去设置,我以前也遇到过,这个高度可以通过代码动态设置,这样的话ListView能完全显示,并且不影响ScrollView的滑动

#14


自定义LISTview 里面加
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int ex = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 4,
MeasureSpec.AT_MOST);

super.onMeasure(widthMeasureSpec, ex);
}
Activity代码里面
public void setListView(ListView lv) {
// 获取ListView对应的Adapter

ListAdapter listAdapter = lv.getAdapter();
if (listAdapter == null) {
return;
}
int Height = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
// listAdapter.getCount()返回数据项的数目
View listItem = listAdapter.getView(i, null, lv);
// 计算子项View 的宽高

listItem.measure(0, 0);
// 统计所有子项的总高度
Height += listItem.getMeasuredHeight();

}
ViewGroup.LayoutParams params = lv.getLayoutParams();
params.height = Height
+ (lv.getDividerHeight() * (listAdapter.getCount() - 1));
// listView.getDividerHeight()获取子项间分隔符占用的高度
// params.height最后得到整个ListView完整显示需要的高度
lv.setLayoutParams(params);

}
添加这个方法固定listview的高度

#15


这样就能滑了 并且不会只显示一行。、

#16


推荐你个网址吧http://blog.csdn.net/qq_21709449/article/details/41210485,你可以看下,有详细的解决方案

推荐阅读
  • 本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 本文介绍如何在 Android 中通过代码模拟用户的点击和滑动操作,包括参数说明、事件生成及处理逻辑。详细解析了视图(View)对象、坐标偏移量以及不同类型的滑动方式。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ... [详细]
  • 本文介绍了Android开发中Intent的基本概念及其在不同Activity之间的数据传递方式,详细展示了如何通过Intent实现Activity间的跳转和数据传输。 ... [详细]
  • 在 Android 开发中,通过 Intent 启动 Activity 或 Service 时,可以使用 putExtra 方法传递数据。接收方可以通过 getIntent().getExtras() 获取这些数据。本文将介绍如何使用 RoboGuice 框架简化这一过程,特别是 @InjectExtra 注解的使用。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 在现代Web应用中,当用户滚动到页面底部时,自动加载更多内容的功能变得越来越普遍。这种无刷新加载技术不仅提升了用户体验,还优化了页面性能。本文将探讨如何实现这一功能,并介绍一些实际应用案例。 ... [详细]
author-avatar
流浪的牛仔2011Ting_883
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有