Android笔记: 解决ScrollView嵌套ListView的冲突方法
范例:
1.MainActivity代码:
public class MainActivity extends Activity
{// 只要在设置ListView的Adapter后调用此静态方法Utility.setListViewHeightBasedOnChildren(listview);
// 即可让ListView正确的显示在其父ListView的ListItem中。
// 但是要注意的是,子ListView的每个Item必须是LinearLayout,不能是其他的,因为其他的Layout(如RelativeLayout)
// 没有重写onMeasure(),所以会在onMeasure()时抛出异常。private ArrayList<String> dataList;private ListView listview;private ImageView img;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);dataList = new ArrayList<String>();for (int i = 0; i < 5; i++){String str = "第" + i + "行";dataList.add(str);}img = (ImageView) findViewById(R.id.p_w_picpathView1);listview = (ListView) findViewById(R.id.listView1);listview.setAdapter(new BaseAdapter(){@Overridepublic View getView(int position, View convertView, ViewGroup parent){LayoutInflater inflater = getLayoutInflater();View layout = inflater.inflate(R.layout.item, null);TextView tv = (TextView) layout.findViewById(R.id.tv_item);String str = dataList.get(position);tv.setText(str);return layout;}@Overridepublic long getItemId(int position){return 0;}@Overridepublic Object getItem(int position){return null;}@Overridepublic int getCount(){return dataList.size();}});Utility.setListViewHeightBasedOnChildren(listview);}
}
2.Utility代码
public class Utility
{public static void setListViewHeightBasedOnChildren(ListView listView){ListAdapter listAdapter = listView.getAdapter();if (listAdapter == null){// pre-conditionreturn;}int totalHeight = 0;for (int i = 0; i < listAdapter.getCount(); i++){View listItem = listAdapter.getView(i, null, listView);listItem.measure(0, 0);totalHeight += listItem.getMeasuredHeight();}ViewGroup.LayoutParams params = listView.getLayoutParams();params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));listView.setLayoutParams(params);}
}
转载于:https://blog.51cto.com/glblong/1290605
Android笔记: 解决ScrollView嵌套ListView的冲突方法相关推荐
- Android之 如何解决ScrollView 和ListView滑动冲突的问题如何解决ScrollView can host only one direct child
android 采用ScrollView布局时出现异常:ScrollView can host only one direct child. 解决办法:主要是ScrollView内部只能有一个子元素, ...
- android解决ScrollView嵌套ListView不能下拉刷新
为了不误导新人,这篇帖子写的比较早了,这里2016年2月23日21:33:20更新的内容: 千万不要在实际开发中用scrollview嵌套listview\recylerview来处理滑动嵌套, ...
- 四种方案解决ScrollView嵌套ListView问题
在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollView嵌套ListView结 ...
- ApkBus---四种方案解决ScrollView嵌套ListView问题
原文链接:http://www.apkbus.com/forum.php?mod=viewthread&tid=161576 一. 为什么要使用ScrollView嵌套ListView的奇怪的 ...
- Android之解决ScrollView嵌套RecycleView导致滑动冲突或者显示不全的问题
1 问题 ScrollView嵌套RecycleView导致滑动冲突或者显示不全的问题 2 解决办法 1).ScrollView替换成普通布局,然后RecycleView用的BaseMultiItem ...
- ScrollView嵌套ListView处理事件冲突
当ListView嵌套在ScrollView中时会有两个问题 列表内容显示不全 滑动事件冲突 第一个问题可以参考ScrollView与ListView嵌套仿微博个人主页中的解决方法. 第二个问题就是下 ...
- [转]Android笔记:ScrollView嵌套ViewPager的滚动冲突解决方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 /** * ...
- 安卓学习UI组件-解决ScrollView嵌套ListView,GridView的冲突
2019独角兽企业重金招聘Python工程师标准>>> 案例: strings.xml <resources> <string name="app_nam ...
- 解决ScrollView嵌套ListView高度的问题
2019独角兽企业重金招聘Python工程师标准>>> public static void setListViewHeight(ListView listView) {ListAd ...
最新文章
- 能ping通外网的域名,浏览器不能上网的解决办法
- jenkins部署java项目(五)
- linux shell 特定变量参数说明
- android 布局: LinearLayout如何使TextView中的内容居中显示
- ik分词器实现原理_SpringBoot整合Elasticsearch实现商品搜索
- 易流即时配送_即时大数据流处理=即时风暴
- 小米11和vivox60买哪个?
- python虚拟环境windows环境搭建_window10配置python虚拟环境的路径
- 极速稳定网络加速服务器,零点云 极速服务器
- 2个74151实现16位数据选择器以及在Multisim的演示
- GAN(生成对抗神经网络)生成MNIST 基于pytorch实现
- AutoSar之CAN网络管理
- pccad无法找到所需的动态链接库_关于PCCAD的,请大神回答!!感激不尽~~~~已经重新装过2次了!!!!...
- 糟糕之至的用户体验——JavaEye你怎么就这么贱!
- (转)50本书总结的50句话
- 生日了,总要写点什么
- 如何高效阅读一篇论文
- 登录+注册界面的实现(代码)
- Pspice模型的使用
- 祝大家猿(元)宵节快乐!一起来猜灯谜吧