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

随州市网站建设_网站建设公司_搜索功能_seo优化

网页游戏广告平台网站建设,怎么自己做淘宝网站,做网站学h5还是php,上海十大公关公司排名1、ScrollView和HorizontalScrollView是为控件或者布局添加滚动条 2、上述两个控件只能有一个孩子#xff0c;但是它并不是传统意义上的容器 3、上述两个控件可以互相嵌套 4、滚动条的位置现在的实验结果是#xff1a;可以由layout_width和layout_height设定 5、ScrollV…1、ScrollView和HorizontalScrollView是为控件或者布局添加滚动条 2、上述两个控件只能有一个孩子但是它并不是传统意义上的容器 3、上述两个控件可以互相嵌套 4、滚动条的位置现在的实验结果是可以由layout_width和layout_height设定 5、ScrollView用于设置垂直滚动条HorizontalScrollView用于设置水平滚动条需要注意的是有一个属性是 scrollbars 可以设置滚动条的方向:但是ScrollView设置成horizontal是和设置成none是效果同HorizontalScrollView设置成vertical和none的效果同。 ScrollView嵌套listView时listView会产生只能显示一行的状况可以用如下方法解决。 解决方法 方法1手动设置listView高度 01.public class MainActivity extends Activity { 02. private ListView listView; 03. Override 04. protected void onCreate(Bundle savedInstanceState) { 05. super.onCreate(savedInstanceState); 06. setContentView(R.layout.activity_main); 07. listView (ListView) findViewById(R.id.listView1); 08. String[] adapterData new String[] { Afghanistan, Albania,… … Bosnia}; 09. listView.setAdapter(new ArrayAdapterString(this,android.R.layout.simple_list_item_1,adapterData)); 10. setListViewHeightBasedOnChildren(listView); 11. } 12. public void setListViewHeightBasedOnChildren(ListView listView) { 13. // 获取ListView对应的Adapter 14. ListAdapter listAdapter listView.getAdapter(); 15. if (listAdapter null) { 16. return; 17. } 18. 19. int totalHeight 0; 20. for (int i 0, len listAdapter.getCount(); i len; i) { 21. // listAdapter.getCount()返回数据项的数目 22. View listItem listAdapter.getView(i, null, listView); 23. // 计算子项View 的宽高 24. listItem.measure(0, 0); 25. // 统计所有子项的总高度 26. totalHeight listItem.getMeasuredHeight(); 27. } 28. 29. ViewGroup.LayoutParams params listView.getLayoutParams(); 30. params.height totalHeight (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 31. // listView.getDividerHeight()获取子项间分隔符占用的高度 32. // params.height最后得到整个ListView完整显示需要的高度 33. listView.setLayoutParams(params); 34. } 35.} 方法2使用单个ListView取代ScrollView中所有内容 就是说把整个需要放在ScrollView中的内容统统放在ListView中原ListView上方的数据和下方数据都作为现ListView的一个itemView和原ListView中的单条数据是平级的关系。 public View getView(int position, View convertView, ViewGroup parent) {//列表第一项if(position 0){convertView inflater.inflate(R.layout.item_solution2_top, null);return convertView;}//列表最后一项else if(position 21){convertView inflater.inflate(R.layout.item_solution2_bottom, null);return convertView;}//普通列表项ViewHolder h null;if(convertView null || convertView.getTag() null){convertView inflater.inflate(R.layout.item_listview_data, null);h new ViewHolder();h.tv (TextView) convertView.findViewById(R.id.item_listview_data_tv);convertView.setTag(h);}else{h (ViewHolder) convertView.getTag();}h.tv.setText(第 position 条数据);return convertView; } 方法3使用LinearLayout取代ListView 既然ListView不能适应ScrollView那就换一个可以适应ScrollView的控件干嘛非要吊死在ListView这一棵树上呢而LinearLayout是最好的选择。但如果我仍想继续使用已经定义好的Adater呢我们只需要自定义一个类继承自LinearLayout为其加上对BaseAdapter的适配。 /** * 取代ListView的LinearLayout使之能够成功嵌套在ScrollView中 * author terry_龙 */ public class LinearLayoutForListView extends LinearLayout {private BaseAdapter adapter;private OnClickListener onClickListener null;/*** 绑定布局*/public void bindLinearLayout() {int count adapter.getCount();this.removeAllViews();for (int i 0; i count; i) {View v adapter.getView(i, null, null);v.setOnClickListener(this.onClickListener);addView(v, i);}Log.v(countTAG, count);}public LinearLayoutForListView(Context context) {super(context);} 上面的代码拷贝保存为LinearLayoutForListView.class或者直接拷贝Demo中的这个类在自己的工程里。我们只需要把原来xml布局文件中的ListView替换为这个类就行了 pm.nestificationbetweenscrollviewandabslistview.mywidgets.LinearLayoutForListViewandroid:idid/act_solution_3_mylinearlayoutandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:orientationvertical /pm.nestificationbetweenscrollviewandabslistview.mywidgets.LinearLayoutForListView 在Activity中也把ListView改成LinearLayoutForListView就能成功运行了。 mylinearlayout (LinearLayoutForListView) findViewById(R.id.act_solution_3_mylinearlayout); adapter new AdapterForListView(this); mylinearlayout.setAdapter(adapter); 方法四 自定义可适应ScrollView的ListView 这个方法和上面的方法是异曲同工方法3是自定义了LinearLayout以取代ListView的功能但如果我脾气就是倔就是要用ListView怎么办那就只好自定义一个类继承自ListView通过重写其onMeasure方法达到对ScrollView适配的效果。 下面是继承了ListView的自定义类 import android.content.Context; import android.util.AttributeSet; import android.widget.ListView; public class ListViewForScrollView extends ListView {public ListViewForScrollView(Context context) {super(context);}public ListViewForScrollView(Context context, AttributeSet attrs) {super(context, attrs);}public ListViewForScrollView(Context context, AttributeSet attrs,int defStyle) {super(context, attrs, defStyle);}Override/*** 重写该方法达到使ListView适应ScrollView的效果*/protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int expandSpec MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE 2,MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, expandSpec);} } 三个构造方法完全不用动只要重写onMeasure方法需要改动的地方比起方法3少了不是一点半点… 在xml布局中和Activty中使用的ListView改成这个自定义ListView就行了。代码就省了吧… 这个方法和方法1有一个同样的毛病就是默认显示的首项是ListView需要手动把ScrollView滚动至最顶端。 sv (ScrollView) findViewById(R.id.act_solution_4_sv); sv.smoothScrollTo(0, 0); 参考链接 日积月累ScrollView嵌套ListView只显示一行 - 郑文亮 - 博客园 四种方案解决ScrollView嵌套ListView问题 - Android开发者交流 - 安卓论坛 完成 ,效果如下
http://www.ihoyoo.com/news/126213.html

相关文章:

  • 做网站的怎样能翻页黄山网站建设怎么做
  • 可信网站认证查询罗村建网站
  • 做网站创业流程图app界面设计规范
  • 网站搜索引擎优化技术祭祀网站建设方案
  • 山西城乡建设学校报名网站wordpress二维码 插件下载地址
  • wordpress 加载更多网站首页优化
  • 网站服务器设置网站排版尺寸
  • 做网站包含什么职位org域名注册
  • 郑州建设高端网站it从零开始学大概要学多久
  • 青海省住建局和建设厅门户网站那些网站建设的好
  • 网站建设费用低的公司wordpress模板下载云落
  • wordpress建站镜像苏州吴中区seo关键词优化排名
  • 中卫网站定制开发价格网上申请入团网站
  • 网站空间在哪里网站建设验收单
  • 网页代码在线生成长沙seo在哪
  • 上海高端网站制作站霸科技门户网站模板源码
  • 网站栏目的分类做网站链接
  • 移动ui设计 网站襄阳建设局网站
  • 深圳服装网站建设制作开发优秀的电子商务网站
  • h5建设网站公司wordpress默认用户名
  • 湖北网站设计流程北京市网站公司
  • 南宁网站建设公司哪里团购网站及域名
  • 外贸自己建网站建站技术
  • 便利的赣州网站建设河南网络营销外包
  • 汝州市住房和城乡建设局网站上海开发小程序和app的公司
  • dz网站建设教程网站建设金手指稳定
  • 电商网站开发设计文档网站制作成本多少钱
  • 网站建设期间注意事项石家庄网络平台推广
  • 怎么把网站黑了wordpress项目需求
  • 建设一个门户网站需要多久公司网站建设岗位