`
iaiai
  • 浏览: 2204105 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GridView设置数据时设置setLayoutParams时注意

 
阅读更多
一、问题代码
public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            
            TextView item = new TextView(context);
            item.setText("Test");
            item.setLayoutParams(new LayoutParams(
                    LayoutParams.WRAP_CONTENT,
                    LayoutParams.WRAP_CONTENT));
            
            return item;
        } else
            return convertView;
    }

  代码说明:

      a).  LayoutParams是指android.view.ViewGroup.LayoutParams。

      b).  程序运行后将出错,错误很莫名其妙且不固定。



  二、问题分析

    经调试发现在获取LayoutParams时内部是将这个属性转到android.widget.AbsListView.LayoutParams,也就是这里setLayoutParams弄错了,这里正确的方法是使用GridView.LayoutParams,替换之后问题得以解决。



结束

  之前一直是复制、粘贴这部分的代码,所以没注意有这问题,这里记录一下。
分享到:
评论

相关推荐

    Android帮助文档及一些资料打包放送

    [Android1_6]继承BaseAdapter为GridView设置数据时设置setLayoutParams时注意 - 农民伯伯 - 博客园.mht349.26 KB [Android]ListView性能优化之视图缓存 - 农民伯伯 - 博客园.mht513.31 KB [Android]ListView性能优化...

    GridView实现九宫格源码

    在实现九宫格时,我们需要设置GridView的列数为3,这样就能得到一个3行3列的网格布局。这可以通过在XML布局文件中设置`android:numColumns="3"`来实现。例如: ```xml <GridView android:id="@+id/grid_view" ...

    Android GridView学习实例

    开发者可以使用`GridView.LayoutParams`或自定义的LayoutParams,通过`setLayoutParams()`方法设置子视图的参数。 四、GridView的事件监听 GridView支持点击事件和长按事件,可以分别通过`.setOnItemClickListener...

    利用GridView显示图片(一)sdk1.6

    imageView.setLayoutParams(new GridView.LayoutParams(100, 100)); } else { imageView = (ImageView) convertView; } // 加载图片,这里可以使用BitmapFactory.decodeFile()加载本地文件 Bitmap bitmap = ...

    GriView设置行高

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似相册、菜单或列表的应用场景。然而,在实际应用中,有时默认的行高可能无法满足显示需求,比如当内容较多时可能...

    [其他类别]可拖动、改变列宽的GridView源码_gridviewhtc.zip

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。这个名为“[其他类别]可拖动、改变列宽的GridView源码_gridviewhtc.zip”的压缩包提供了一个特殊版本的GridView实现,具有用户...

    Android GridView宫格视图实践

    imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setPadding(8, 8, 8, 8); } else { imageView = (ImageView) ...

    读取手机图片并用gridview显示

    imageView.setLayoutParams(new GridView.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); } else { imageView = (ImageView) convertView; } Glide.with...

    Android 九宫图GridView及继承BaseAdapter实现

    需要注意的是,实际项目中图片URL列表可能来自网络请求,此时需要在获取数据后再设置Adapter。 总结来说,实现Android的九宫图GridView主要涉及以下步骤: 1. 在XML布局文件中添加GridView并设置属性。 2. 继承...

    解决scrollView和gridView和ListView嵌套的冲突

    在布局加载完成后,可以通过`setLayoutParams`设置ListView或GridView的高度,从而避免ScrollView中的滚动混乱。 6. **使用ExpandableListView**:如果数据结构复杂,可以考虑使用ExpandableListView,它允许展开和...

    自定义GridView

    在Android开发中,GridView是一种非常常见的布局控件,它允许我们以网格的形式展示数据,通常用于创建像照片墙、应用列表等多元素排列的界面。本教程将深入讲解如何自定义GridView来显示图片,并附带代码注释以便...

    Android实现取消GridView中Item选中时默认的背景色

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。然而,在默认情况下,当用户点击GridView中的某一个Item时,系统会自动为其添加一个选中状态的背景色。这对于某些设计风格可能并...

    Android编程UI设计之GridView和ImageView的用法

    `getView()`方法的工作原理是,在需要显示GridView时,系统会通过循环调用这个方法,先获取数据项数量,然后遍历每个位置,获取并设置对应位置的数据项对应的View。例如,对于图片展示,可能需要创建一个新的...

    Android开发中GridView用法示例

    接着,我们使用刚刚创建的`ImageAdapter`设置GridView的数据源: ```java gridview.setAdapter(new ImageAdapter(this)); ``` 为了增强用户体验,我们可以添加点击事件监听器,当用户点击某张图片时,可以显示相应...

    ListView 表格动态设置控件宽度 代码法

    因此,优化测量和布局过程是必要的,比如使用ViewHolder减少对象创建,或者在数据加载完成后再进行宽度计算和设置。 总的来说,通过自定义Adapter,测量并设置控件的宽度,我们可以实现ListView表格的动态宽度调整...

    Android 中 GridView嵌套在ScrollView里只有一行的解决方法

    同时,要注意这样的布局可能会影响性能,特别是在数据量较大的情况下,因此优化计算过程和避免不必要的计算是十分重要的。此外,还可以考虑使用其他的布局管理器,如RecyclerView,它可以更灵活地处理滚动和布局问题...

    Android网格布局GridView学习使用

    但是,GridView也存在一些缺点,例如在加载大量数据时可能会出现性能问题。 五、总结 本文详细介绍了Android网格布局GridView的学习使用,包括GridView的基本概念、使用方法、适配器的实现等。GridView是一种非常...

    android实现横向滑动解决Gallery从中间滑动的问题

    gridView.setLayoutParams(layoutParams); ``` 3. **设置初始位置**:为了让GridView从最左边开始,我们需要设置初始的滚动位置。可以在Adapter的`notifyDataSetChanged()`方法后添加以下代码: ```java ...

    ScrollView与ListView的滑动冲突

    具体实现可以通过遍历Adapter中的数据项并测量每个子项的高度,然后计算总高度并设置给ListView或GridView。 ```java // 设置ListView的高度 public void setListViewHeight(ListView listView) { // 获取ListView...

Global site tag (gtag.js) - Google Analytics