欢迎来到天天文库
浏览记录
ID:11176767
大小:59.00 KB
页数:10页
时间:2018-07-10
《android 解决listview 和 scrollview 共存冲突的问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、问题症状:ListView与ScrollView同在一界面会导致ListView显示变形,因为ListView也有自带的滚动事件,故无法与ScrollView相容,可能造成的现象是ListView只能显示一行或者两行解决步骤:·1、继承LinearLayout,既然会冲突那就不用ListView改成线性布局做动态布局效果·2、继承BaseAdapter,可以参照一下Androidapp源码中Widget目录下的SimpleAdapter为前面扩展的LinearLayout做数据。·3、模拟数据填充扩展后的BaseAdapter为扩展后的LinearLayout加载数据第一步
2、:新建LinearLayoutForListView类使其扩展LinearLayout重写以下两个方法: publicLinearLayoutForListView(Contextcontext){ super(context); } publicLinearLayoutForListView(Contextcontext,AttributeSetattrs){ super(context,attrs); //TODOAuto-generatedconstructorstub } 这两个方法可选,不过建议都写上,第一个方法
3、可以让我们通过编程的方式实例化出来,第二个方法可以允许我们通过XML的方式注册控件,可以在第二个方法里面为扩展的复合组件加属性,详细使用方法请点击这里 。为其添加get/set方法 /** *获取Adapter * *@returnadapter */ publicAdapterForLinearLayoutgetAdpater(){ returnadapter; } /** *设置数据 * *@paramadpater烘焙包装http://www.gdxyzs.cn/,玩具储蓄罐http://www.s
4、tmmtoys.com/ */ publicvoidsetAdapter(AdapterForLinearLayoutadpater){ this.adapter=adpater; bindLinearLayout(); } /** *获取点击事件 * *@return */ publicOnClickListenergetOnclickListner(){ returnonClickListener; } /** *设置点击事件 * *@paramonClick
5、Listener */ publicvoidsetOnclickLinstener(OnClickListeneronClickListener){ this.onClickListener=onClickListener; } 第二步:新建AdapterForLinearLayout类继承自BaseAdapter,并为其添加构造函数 privateLayoutInflatermInflater; privateintresource; privateList>data; privateS
6、tring[]from; privateint[]to; publicAdapterForLinearLayout(Contextcontext, List>data,intresouce,String[]from, int[]to){ this.data=data; this.resource=resouce; this.data=data;烘焙包装http://www.gdxyzs.cn/,玩具储蓄罐http://www.stmmtoys.co
7、m/ this.from=from; this.to=to; this.mInflater=(LayoutInflater)context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); } 此构造函数模仿simpleAdapter通过传进来的resouce为布局设置数据。通过继承BaseAdapter重要的实现方法在下面getView,此方法判断通过传进来的String[]from与int
此文档下载收益归作者所有