• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > ListView 添加 HeaderView常见错误,listviewheaderview

ListView 添加 HeaderView常见错误,listviewheaderview

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了listview headerview,listview headview,listview viewholder,scrollview listview,searchview listview等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

ListView 添加 HeaderView常见错误,listviewheaderview


1.addHeaderView异常:

最近在做通讯录开发时使用ListView,发现一个奇怪的问题:当添加一个ImageView 作为HeaderView时,发现ImageView长宽始终是1:1的大小,即调用 ListView.addHeaderView(mImageView) 之后mImageView尺寸布局被忽略。具体代码如下:

list_view_header_layout.xml

<?xml version="1.0" encoding="utf-8"?>  
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="wrap_content"  
    android:scaleType="fitCenter"  
    android:src="@drawable/ruanjianguanli_banner" >  
</ImageView>  

java

mImageView = (ImageView)LayoutInflater.from(mContext).inflate(R.layout.list_view_header_layout, null);  
mListView.addHeaderView(mImageView); 

上面的调用方式会使XML布局中ImageView的LayoutParam丢失,调用 ListView.addHeaderView(mImageView) 之后mImageView尺寸布局被忽略

修改为如下方式调用,则不会丢失LayoutParam

mImageView = (ImageView)LayoutInflater.from(mContext).inflate(R.layout.list_view_header_layout, mListView, false);  
mListView.addHeaderView(mImageView);  

 

2.LayoutInflater的inflate()函数的用法:

View view = inflate(int resource, ViewGroup root, boolean attachToRoot)   
resource:布局文件ID   
root:父ViewGroup对象,   
attachToRoot:是否将“渲染”出来的View添加到上面的root中   

root和attachToRoot是共同作用的: 
1,有root,同时attachToRoot为false,那么inflate()返回的就是“翻译”得到的view 
2,有root,同时attachToRoot为true,那么inflate()就是将“翻译”得到的view添加到root后,然后返回root 
3,无root,同时attachToRoot为false,那么inflate()返回的就是“翻译”得到的view
4,无root,同时attachToRoot为true,报错

root还有一个重要的作用就是为“渲染”得到的view添加合适的LayoutParam,并且如果并不想将得到的View添加到root的话

1. View view = mLayoutInflater.inflate(R.layout.header, new ListView(mContext), false);  
2. View view = mLayoutInflater.inflate(R.layout.header, new LinearLayout(mContext), false);  
3. View view = mLayoutInflater.inflate(R.layout.header, new RelativeLayout(mContext), false);  

上面得到的View,除了view的LayoutParam分别为AbsListView.LayoutParams,LinearLayout.LayoutParams,RelativeLayout.LayoutParams之外,内容都一致。  

  

 

  

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ListView 添加 HeaderView常见错误,listviewheaderview
  • listview的ViewHolder优化,listviewviewholder

相关文章

  • 2017-05-26fastdfs 使用遇到的问题
  • 2017-05-26我的Android第五章:通过Intent实现活动与活动之间的交互,androidintent
  • 2017-05-26android开发游记:SpringView 下拉刷新的高效解决方案,定制你自己风格的拖拽页面
  • 2017-05-26andriod 读取通讯录,andriod通讯录
  • 2017-05-26Android--split()分割字符串特殊用法,csplit字符串分割
  • 2017-05-225.2.5 Fragment实例精讲——新闻(购物)类App列表Fragment的简单实现
  • 2017-05-26DroidPlugin插件化开发,droidplugin插件
  • 2017-05-26Android开发笔记(4)——MainActivity.java文件修改&amp;布局嵌套,androidmainactivity
  • 2017-05-26移动应用支付系列一:支付宝支付,移动应用支付系列
  • 2017-05-26Android 手机卫士--md5加密过程,android--md5

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Touch事件分发
    • 开源插件 PullToRefresh: PullToRefreshListView / PullToRefreshGridView 实例详解
    • Android Studio 优秀插件(二): Parcelable Code Generator,androidparcelable
    • Android——eclipse下运行android项目报错 Conversion to Dalvik format failed with error 1解决,androiddalvik
    • node.js 通过ajax上传图片
    • Android自定义下拉刷新动画--仿百度外卖下拉刷新
    • ActionBar设置自定义setCustomView()留有空白的问题,setcustomview空白
    • Android studio1.5.1 NDK配置开发
    • andriod 获取电池的信息,andriod获取电池
    • 7.5.2 WebView和JavaScrip交互基础

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有