ListView在ScrollView中无法正常显示
对于ListView放在在ScrollView中时,目前Android平台仍然有些bug,状态是显示的ListView仅仅大约一行半(总Item肯定大于2行,比如10行),通过Layout布局属性设置目前仍然无法修正。通过分析ListView和ScrollView构造没有发现很好的解决方法,目前可以通过自己实现ListView来解决,Android123解决的方式重写ListView的onMeasure重新计算显示行数。希望在Android以后的版本,至少2.1以后能够改进。这个问题大家怎么解决的?能不能提供一个具体的例子
对于ListView放在在ScrollView中时,目前Android平台仍然有些bug,状态是显示的ListView仅仅大约一行半(总Item肯定大于2行,比如10行),通过Layout布局属性设置目前仍然无法修正。通过分析ListView和ScrollView构造没有发现很好的解决方法,目前可以通过自己实现ListView来解决,Android123解决的方式重写ListView的onMeasure重新计算显示行数。希望在Android以后的版本,至少2.1以后能够改进。这个问题大家怎么解决的?能不能提供一个具体的例子
解决方案 »
- ListView组件中如何使item布局文件中的组件隐藏
- 学习Socket通信,一个简单的例子,不知道错在哪里?求指教
- 手机和pc同步,为什么要去用虚拟sokect来传输,不是可以直接用adb push和adb pull吗?
- 求号http://www.eoeandroid.com的帐号
- 怎样屏蔽掉“未检测到SIM卡信息“
- Button的selected和pressed效果是否是一样的?
- 真机测试android客户端可以发送却不能接收服务器的信息,模拟器测试是成功的
- 我下载代码的时候,只出现一个写着下载成功的网页,并没弹出“打开 保存 帮助""
- Android stutio 无法为Button添加id问题
- 手机root了 怎么修改系统文件 实现充电就开机
- 请问android gallery如何设置,让图片显示在靠左位置。而不是在中间
- scrollview不支持内嵌listview,多控件应使用哪种布局
和这位兄弟情况一模一样
搞了一天,结果是不成功的
最后找了个变通的方法:
首先ScrollView内置一个Layout,此Layout内放置列表(不是指ListView)数据;
然后通过循环,直接借用ListView的配置文件list,通过以下方法找到一个View:
LayoutInflater.from(this).inflate(R.layout.list, null)
初始化以上的view并添加到Layout内结果成功
此Layout内放置列表(不是指ListView)数据 什么意思?
然后通过循环,直接借用ListView的配置文件list,通过以下方法找到一个View 往后我没看懂
就是放ListView的数据,而不是放ListView
<ScrollView >
<LinearLayout>
<ListView>
</ListView>
</LinearLayout>
</ScrollView >
自己写个类继承ListView 然后重新
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)这个方法
在中间调用setMeasuredDimension(320, 480);设置新的宽高public class XListView extends android.widget.ListView{
public XListView(android.content.Context context) {
// TODO Auto-generated constructor stub
super(context);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
setMeasuredDimension(320, 480);
}
}
我以前也遇到过,不过后来用listview的header和footer解决了。
,如果高度是“wrap_content”的,你又怎么去设置高度呢,
ScrollView和ListView都能滚动,我觉得ScrollView应该是由用户指定高度的,否则系统不着调如何设置高度了持续关注
然后在代码中这样设置
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, adapter.getCount() * 50 - 1);
listview.setLayoutParams(lp1);
其中50是每行的高度
这里面有完整的解决此问题的DEMO。