关闭

android学习笔记---ScrollView布局中的显示问题

81人阅读 评论(0) 收藏 举报
ScrollView只能添加一个子控件,如果添加了多个子控件,则会出现“ScrollView can host only one direct child”异常
解决办法:子控件外面再套一层LinearLayout,注意只能是Linearlayout,布局中不能出现RelativeLayout

scrollview内部组件android:layout_height="fill_parent"无效的解决办法
解决办法:
需要设置scrollview的fillViewport属性为"true"才能使其子组件可以扩展

在ViewPager 外面嵌套ScrollView 时,发现ViewPager中的元素显示不出来。
解决办法:
在ScrollView节点指定android:fillviewport="true"

ScrollView嵌套ListView,ListView不能完全正确的显示
解决办法:
1)自定义一个ListView,重写onMeasure方法
@Override  
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
    int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,  
            MeasureSpec.AT_MOST);  
    super.onMeasure(widthMeasureSpec, expandSpec);  
}
2)计算每个Item的高度
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);

 }

3)listview添加适配器后或者适配器加载数据后重新设置ListView高度

listView.setAdapter(adapter);  
new ListViewUtil().setListViewHeightBasedOnChildren(listView);  

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android 使用ScrollView属性fillViewport解决android布局不能撑满全屏的问题

一、缘由:使用了ScrollView嵌套LinearLayout时,在大屏幕手机如三星note3手机上下面会留白,问题的解决办法是在第一层LinearLayout里面嵌套多个LinearLayout,...
  • lovoo
  • lovoo
  • 2016-06-20 21:58
  • 1378

【Android界面实现】解决ScrollView中嵌套Listview,Listview中嵌套Listview显示不完整和滑动冲突的问题

在一个滑动控件或者是布局里面,添加另外一个可以滑动的控件,通常会造成一些莫名其妙的问题。今天主要介绍在工作中遇到的,在ScrollView布局中嵌套Listview显示不正常,和在Listview中嵌...
  • bz419927089
  • bz419927089
  • 2014-08-15 15:38
  • 13737

详解嵌套ListView、ScrollView布局显示不全的问题

在项目开发中,可能经常遇到嵌套ListView、ScrollView的问题,百度一搜,都是现成的代码,而且都是一样的,就是重写onMeasure方法,但是为什么要那么写,估计就没多少人知道了,这里进行...
  • hanhailong726188
  • hanhailong726188
  • 2015-05-28 22:28
  • 15335

Android开发 详解嵌套ListView、ScrollView布局显示不全的问题

在项目开发中,可能经常遇到嵌套ListView、ScrollView的问题,百度一搜,都是现成的代码,而且都是一样的,就是重写onMeasure方法,但是为什么要那么写,估计就没多少人知道了,这里进行...
  • lizhaowei213
  • lizhaowei213
  • 2015-12-08 22:13
  • 374

Android学习笔记之为Dialog自定义布局,并说明空指针问题

在使用自定义布局时经常会碰见这样的问题:edit = (EditText) findViewById(R.id.edit);并不能获取到控件对象; 在后面代码中使用edit时会报错,空指针异常。意思...
  • SJF0115
  • SJF0115
  • 2012-03-07 18:03
  • 9582

android开发学习笔记——自定义布局的dialog宽度的问题

在自定义dialog布局时,我们可能会遇到dialog宽度不正常的问题,进而导致显示内容不正常。
  • linkdust
  • linkdust
  • 2015-11-07 23:08
  • 3210

黑马66期android学习笔记14-电话拨号器定义布局&amp;获取组件对象

  • 2015-07-22 09:08
  • 2.22MB
  • 下载

黑马66期android学习笔记19_线性布局的特性

  • 2015-07-22 09:11
  • 2.39MB
  • 下载

【Android学习笔记】ScrollView下使用无滚动条ListView,即ListView的item内容自适应拉伸

在写Android项目中,ListView是b
  • u011212909
  • u011212909
  • 2014-07-04 13:19
  • 867

Android 学习笔记(7)——ScrollView(竖直滚动条)/HorizontalScrollView(水平滚动条)

作者:夏至 欢迎转载,也请保留这段申明,谢谢 1. ScrollView(竖直滚动条)有没有发现,我们以前的学习都是用在一个手机屏幕框里的,没有上下滑动的?如果我们增加内容好像会被覆盖?没错,这次我...
  • u011418943
  • u011418943
  • 2016-04-04 23:10
  • 993
    个人资料
    • 访问:1129次
    • 积分:84
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类