0 0

GridView的getView调用问题10

最近用GridView做网格的时候遇到问题,按照文档指示我在GridView中的getView方法中返回一个View对象给系统作为某个position的显示View,按道理来讲应该每个position显示的时候都是指调用一次getView对吧?但是在position=0的时候却调用了两次getView,按照我们的想象,系统调用GridView的流程应该是
getCount()来确定有多少位置-->getView(),按照有多少位置从0位置到最后位置来调用这个方法,得到每个位置显示的View,那么顺序应该是:getCount-->依次getView
,但是通过日志惊奇的发现流程是:
调用3次getView()-->position=0时调用两次getView--->position=其他值时倒是正常的每个调用依次getView-->然后又调用一次getCount-->调用一次getView(position=0)-->然后又调用一次getCount-->调用一次getView(position=0)
安卓的这个调用过程真是想不懂啊,望赐教!
2014年11月17日 14:49

1个答案 按时间排序 按投票排序

0 0

建议是:与布局中的layout_height和layout_width属性的设置有关,一般设成match_parent会比wrap_content的次数少,楼主可以尝试一下。

2014年11月30日 11:56

相关推荐

    自定义的各种风格gridview

    通过设置GridAnimationUtils或在Adapter的`getView()`方法中添加动画效果,可以为GridView的滑动、加载等操作添加过渡动画,提升用户体验。 综上所述,自定义各种风格的GridView涉及到了Android开发中的多项核心...

    android Gridview分页实现

    当新数据加载完毕后,将其添加到适配器的列表中,然后调用`notifyDataSetChanged()`通知GridView刷新视图。 ```java public void loadMoreData() { // 获取新的数据 items.addAll(newItems); currentPage++; ...

    GridView设置选中状态

    - 如果你想在启动时默认选中某一项,可以在GridView加载完成后,调用`setSelection()`方法,传入想要选中的位置索引。 ```java gridView.setSelection(selectedPosition); // selectedPosition是你想要默认选中的...

    android baseAdapter getview方法问题

    今天在写一个GridView的BaseAdapter时发现,Adapter的getview方法在position为0的时候会连续调用好几次。 我们知道谷歌时是做过优化的,让view有个缓存,我怀疑是因为做缓存的原因才让position连续调用 log如图 可见...

    GridView GridView GridView GridView

    3. `notifyDataSetChanged()`:当数据源发生变化时调用,使GridView更新视图。 在实际应用中,GridView的交互也很重要。我们可以通过设置OnItemClickListener监听用户的点击事件,处理购票、查看详情等操作。例如:...

    GridView跨行demo

    GridView是基于Adapter的,它会调用Adapter的`getView()`方法来创建或复用单元格视图。每个单元格的大小和位置由GridView自动管理,通常是等宽等高的。 2. **自定义Adapter** 首先,我们需要创建一个自定义的...

    GridView平均分配布局

    2. **测量(Measurements)**:在`getView()`方法中,我们可以调用`measure()`方法来测量每个视图的大小。使用`MeasureSpec`提供的模式和大小,我们可以确保所有视图具有相同的宽度和高度,从而实现平均分配。例如,...

    gridview

    通过查看GridView的源码,我们可以了解到其内部如何处理滚动、如何布局子视图以及如何调用Adapter获取数据。这有助于我们优化性能,解决潜在的问题,甚至根据需要进行扩展和定制。 工具方面,Android Studio作为...

    ListView嵌套GridView问题

    适配器的getView()方法应根据数据类型返回不同的视图(ListView项或GridView)。 在实际开发中,还应注意以下几点: 1. **减少内存占用**:避免一次性加载过多数据,采用懒加载或分页加载策略。 2. **使用...

    GridView中的Item放大缩小

    在Adapter中,我们需要重写`getView()`方法。在这个方法中,我们可以获取到每个Item的视图(View),然后为每个视图设置点击事件监听器。同时,我们需要维护一个状态集合来跟踪当前被放大的Item,以便在点击事件中...

    GridView使用技巧汇总

    15. **适配器数据更新**:当数据源发生变化时,记得调用`adapter.notifyDataSetChanged()`来通知GridView刷新视图。 16. **缓存策略**:适配器的`getViewTypeCount()`和`getItemViewType(int position)`方法可以...

    gridview实例加源码

    自定义Adapter需要重写`getView()`方法,该方法会在每个单元格被创建或复用时调用,用于填充数据到视图。 6. GridView的性能优化: - 使用ViewHolder设计模式,减少findViewById的调用,提高性能。 - 合理使用...

    调用摄像头录像保存到SD卡中用GridView展示出,VideoView播放

    在Android开发中,创建一个应用来调用摄像头录制视频并将其保存到SD卡,然后在GridView中展示,并通过VideoView进行播放,是一个常见的需求。这个功能涉及到多个Android系统组件和API的使用,包括Camera API、...

    android中ListView嵌套GridView的使用

    2. 在`getView()`中创建GridView:在`getView()`方法中,我们使用LayoutInflater实例化一个布局,该布局包含了一个GridView。然后,我们可以通过findViewById()找到GridView实例,并设置其Adapter。这个Adapter可以...

    Gridview高级使用技巧

    当数据源发生变化时,如添加、删除或修改数据,确保调用`notifyDataSetChanged()`通知GridView数据已更新,以便适配器重新绘制视图。 10. **滚动监听** 可以通过实现`OnScrollListener`接口,监听GridView的滚动...

    利用GridView实现手机菜单功能 .zip

    - 动态加载和更新:当数据源发生变化时,可以通过调用adapter的notifyDataSetChanged()方法通知GridView数据已更新,它会自动重新加载数据并刷新视图。 5. 自定义GridView的行为: - 分页加载:如果菜单项目很多...

    GridView数据循环滚动

    GridView是Android平台中...总的来说,"GridView数据循环滚动"是一个涉及到数据绑定、滚动监听、视图复用以及性能优化等多个方面的问题。通过理解和实践这些技术,我们可以为用户创建出流畅且具有吸引力的滚动界面。

    GridView横向显示实例

    同时,当数据源更新时,调用`notifyDataSetChanged()`来刷新GridView的显示。 6. **布局设计**:每个单元格的布局设计也是关键,它们将横向排列。每个单元格内的元素(如ImageView、TextView等)应根据实际需求进行...

    GridView用自定义Adapter

    在Activity或Fragment中,我们创建自定义Adapter的实例,传入数据源,然后调用GridView的`setAdapter()`方法,将Adapter设置给GridView。 5. **优化性能** 为了提高性能,我们应充分利用convertView进行视图复用...

Global site tag (gtag.js) - Google Analytics