当前位置: 首页 > news >正文

ui在线设计网站安徽网站建设外贸

ui在线设计网站,安徽网站建设外贸,镇江制作网页图片,网站推广公司兴田德润官网多少在项目中#xff0c;我们常常会遇到一个ScrollView里面会嵌套ListView的情况#xff0c;但往往你会发现#xff0c;ListView和ScrollView的滚动时间会有冲突问题#xff0c;造成ListView不能完全显示。虽然网上有给出解决方案#xff0c;但事实上并不好用#xff0c;并不…在项目中我们常常会遇到一个ScrollView里面会嵌套ListView的情况但往往你会发现ListView和ScrollView的滚动时间会有冲突问题造成ListView不能完全显示。虽然网上有给出解决方案但事实上并不好用并不完美。 public void setListViewHeightBasedOnChildren(ListView listView) {     // 获取ListView对应的Adapter   ListAdapter listAdapter listView.getAdapter();   if (listAdapter null) {    return;   }   int totalHeight 0;   for (int i 0; i listAdapter.getCount(); i) { // listAdapter.getCount()返回数据项的数目    View listItem listAdapter.getView(i, null, listView);    listItem.measure(0, 0); // 计算子项View 的宽高    totalHeight listItem.getMeasuredHeight(); // 统计所有子项的总高度   }   ViewGroup.LayoutParams params listView.getLayoutParams();   params.height totalHeight     (listView.getDividerHeight() * (listAdapter.getCount() - 1));   // listView.getDividerHeight()获取子项间分隔符占用的高度   // params.height最后得到整个ListView完整显示需要的高度   listView.setLayoutParams(params);  }   因此为了彻底解决问题就需要我们另辟途径了我们使用 LinearLayout 绑定 Adapter的方法来代替ListView 将 adapter 里面的 view 全部加入 LinearLayout 并设置回调监听添加DataSetObserver监听adapter 的改变。   public class LinearLayoutForListView extends LinearLayout { private Adapter mAdapter; private OnItemClickListener mOnItemClickListener; private SparseArrayView mViewHolders; private AdapterDataSetObserver mDataSetObserver; public OnItemClickListener getOnItemClickListener() { return mOnItemClickListener; } public void setOnItemClickListener(OnItemClickListener onItemClickListener) { mOnItemClickListener onItemClickListener; } public LinearLayoutForListView(Context context) { super(context); } public LinearLayoutForListView(Context context, AttributeSet attrs) { super(context, attrs); } public LinearLayoutForListView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public void setAdapter(Adapter adapter) { this.mAdapter adapter; bindLinearLayout(); } /** 绑定布局 */ private void bindLinearLayout() { if (mAdapter null) { return; } setOrientation(LinearLayout.VERTICAL); int count mAdapter.getCount(); this.removeAllViews(); mViewHolders new SparseArrayView(count); for (int i 0; i count; i) { final View v mAdapter.getView(i, null, null); final int tmp i; final Object obj mAdapter.getItem(i); mViewHolders.put(i,v); // view 点击事件触发时回调我们自己的接口 v.setOnClickListener(new View.OnClickListener() { Override public void onClick(View v) { if (mOnItemClickListener ! null) { mOnItemClickListener.onItemClicked(v, obj, tmp); } } }); addView(v); } } /** * * 回调接口 */ public interface OnItemClickListener { /** * param v 点击的 view * param obj 点击的 view 所绑定的对象 * param position 点击位置的 index */ public void onItemClicked(View v, Object obj, int position); } Override protected void onAttachedToWindow() { super.onAttachedToWindow(); if(mAdapter ! null mDataSetObserver null){ mDataSetObserver new AdapterDataSetObserver(); mAdapter.registerDataSetObserver(mDataSetObserver); } } Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); if(mAdapter ! null mDataSetObserver ! null){ mAdapter.unregisterDataSetObserver(mDataSetObserver); } } private class AdapterDataSetObserver extends DataSetObserver { Override public void onChanged() { if(mAdapter!null){ final int count mAdapter.getCount(); for (int i 0; i count; i){ mAdapter.getView(i,mViewHolders.get(i,null),null); } requestLayout(); } } }} 调用 list.setAdapter(madapter);list.setOnItemClickListener(new LinearLayoutForListView.OnItemClickListener() { Override public void onItemClicked(View v, Object obj, int position) { }});转载于:https://www.cnblogs.com/lucktian/p/6478227.html
http://www.pierceye.com/news/589629/

相关文章:

  • 网站托管服务方案珲春建设局网站
  • 开发网站公司收入重庆多功能网站建设
  • 河北手机网站建设上海网站seo招聘
  • 厦门市建设局思明建设分局官方网站在谷歌上做外贸网站有用吗
  • 网站开发手机自适应直接在原备案号下增加新网站
  • 公司网站建设安全的风险网络工程师app
  • 网站app封装怎么做电商网页
  • 网站文章做排名wordpress菜单文本
  • 建站哪家好社区个人网站模板 免费
  • 东西湖区建设局网站如何生成网址链接
  • wordpress商城视频教程苏州推广关键词优化
  • 网站游戏正规网站建设安卓系统软件开发培训机构
  • 关于网站集约化建设的讲话周口seo公司
  • 长沙做网站的公司哪家最好服务公司取名
  • 网站缩略图制作宁波商城网站建设
  • 公司网站公众号维护怎么做湖南网站建设
  • 商务网站建设实训结论装饰装修工程
  • dw做网站简单吗网络科技建设网站
  • 天台建设局网站wordpress编辑器没有16px
  • 携程网站建设计划管理与进度控制志鸿优化设计电子版
  • 网站一级域名和二级域名wordpress 插件 页面
  • 怎么做免费网站如何让百度收录网网站建设设计
  • 河北建设工程信息网官方网站证件在线制作免费
  • 推广网官方推广网站wordpress用户角色权限
  • 电子商务网站模板html淘宝网页版登录
  • 忆达城市建设游戏网站佛山市和城乡建设局网站
  • 备案后的域名改网站名青浦建设机械网站
  • 网站地图怎么做html网络营销论文2000字
  • 武进区城乡建设局网站组建网站建设团队
  • 做淘宝链接模板网站广安网站建设兼职