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

wlccomeon 2015-03-17 03:18:09
我做的那个页面是Android的图文混排,效果如下:

我把ScrollView将最外层的LinearLayout包裹之后页面就运行不出来了,而且ListView的数据只能显示一行。。。。
查资料说,ScrollView和ListView不能同时使用。该怎么做才能实现我这个页面的上下滑动呢?
新手,刚开始Android开发,求大虾们帮忙~
...全文
631 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
gn风城玫瑰 2015-03-26
  • 打赏
  • 举报
回复
推荐你个网址吧http://blog.csdn.net/qq_21709449/article/details/41210485,你可以看下,有详细的解决方案
lpk_6 2015-03-26
  • 打赏
  • 举报
回复
这样就能滑了 并且不会只显示一行。、
lpk_6 2015-03-26
  • 打赏
  • 举报
回复
自定义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的高度
1435076663 2015-03-26
  • 打赏
  • 举报
回复
用测量来做,高度通过代码去设置,我以前也遇到过,这个高度可以通过代码动态设置,这样的话ListView能完全显示,并且不影响ScrollView的滑动
C丶沉默久了 2015-03-18
  • 打赏
  • 举报
回复
@Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } 通过onMeasure计算呢?
icyblood198999 2015-03-18
  • 打赏
  • 举报
回复
引用 4 楼 wlccomeon 的回复:
[quote=引用 2 楼 icyblood198999 的回复:] 这个本身页面的逻辑就有问题,从我观察,lz的listview那块的内容应该是固定的吧,或者至少是制式的。制式的用listview意义本来就不是很大,弄成多行的textview即可。这样不就解决了lz的问题。
不是固定的,是从数据库里动态读取得。 我也不太会布局,只不过弄完之后跟原型图的样子像罢了。。。[/quote] 我的意思是他的数量上是可控的,可以理解为表格,只不过内容不同罢了,如果每个产品稍有区别,可以利用动态生成linerlayout,然后动态根据数量add进你的view里,就躲避了listview嵌套滚动的问题。
小东、、 2015-03-18
  • 打赏
  • 举报
回复
用下拉刷新+自定义适配
ken哥 2015-03-17
  • 打赏
  • 举报
回复
最简单就是linearLayoyt 使用addView(view),反正不涉及大量数据。通过遍历获取数据,填充到自定义view再add就可以了
wlccomeon 2015-03-17
  • 打赏
  • 举报
回复
引用 6 楼 chris_wsy 的回复:
其实就是scrollview的嵌套问题,你在一开始的时候获取listview单个item的高度然后计算出listview的高度,在代码动态设置下就可以了
我原来的ListView的高度设置的是 wrap_content,现在改成了具体的值,测试了一下可以滑动了。。。。 具体怎么动态获取item的高度,然后计算listview的告诉,我再看看。
ChrisArthas 2015-03-17
  • 打赏
  • 举报
回复
上面是解决listview只展示一行的问题,至于scrollview不能滑动你可以试着自定个listview,把onInterceptTouchEvent的返回值改为false
ChrisArthas 2015-03-17
  • 打赏
  • 举报
回复
其实就是scrollview的嵌套问题,你在一开始的时候获取listview单个item的高度然后计算出listview的高度,在代码动态设置下就可以了
wlccomeon 2015-03-17
  • 打赏
  • 举报
回复
引用 3 楼 bdmh 的回复:
把这些东西都放到scrollview中
我测试过,即使单独的把一个ListView放到ScrollView里,ListView中的内容只能显示一行。。。更何况,我在图中的布局用了俩ListView。。。
wlccomeon 2015-03-17
  • 打赏
  • 举报
回复
引用 2 楼 icyblood198999 的回复:
这个本身页面的逻辑就有问题,从我观察,lz的listview那块的内容应该是固定的吧,或者至少是制式的。制式的用listview意义本来就不是很大,弄成多行的textview即可。这样不就解决了lz的问题。
不是固定的,是从数据库里动态读取得。 我也不太会布局,只不过弄完之后跟原型图的样子像罢了。。。
bdmh 2015-03-17
  • 打赏
  • 举报
回复
把这些东西都放到scrollview中
icyblood198999 2015-03-17
  • 打赏
  • 举报
回复
这个本身页面的逻辑就有问题,从我观察,lz的listview那块的内容应该是固定的吧,或者至少是制式的。制式的用listview意义本来就不是很大,弄成多行的textview即可。这样不就解决了lz的问题。
wlccomeon 2015-03-17
  • 打赏
  • 举报
回复
另外,我中间的文字是用的两个listView显示的,虽然显示功能实现了,但总感觉怪怪的。。

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧