为什么系统的Gallery应用程序中的gridview不使用Viewholder?

wqycsu

作为一名初级的Android应用程序开发人员,我知道何时使用gridviewlistview应该使用ViewHolder来优化性能。当我想用多重选择构建一个gridview时,我发现在滚动gridview后选定的视图被改变了,所以我想知道系统库是如何实现这个目的的。但是从getView()功能上GalleryPickerAdapter我可以看到它不使用ViewHolder,为什么Google工程师不使用ViewHolder?

 public View getView(final int position, View convertView,
                    ViewGroup parent) {
    View v;
    if (convertView == null) {
        v = mInflater.inflate(R.layout.gallery_picker_item, null);
    } else {
        v = convertView;
    }
    TextView titleView = (TextView) v.findViewById(R.id.title);
    GalleryPickerItem iv =
            (GalleryPickerItem) v.findViewById(R.id.thumbnail);
    Item item = mItems.get(position);
    iv.setOverlay(item.getOverlay());
    if (item.mThumbBitmap != null) {
        iv.setImageBitmap(item.mThumbBitmap);
        String title = item.mName + " (" + item.mCount + ")";
        titleView.setText(title);
    } else {
        iv.setImageResource(android.R.color.transparent);
        titleView.setText(item.mName);
    }
    // An workaround due to a bug in TextView. If the length of text is
    // different from the previous in convertView, the layout would be
    // wrong.
    titleView.requestLayout();
    return v;
}
迪力克斯

ViewHolder并不是必须在gridview和listview中实现的东西,但是它只是在findViewById期间节省时间的好方法。

现在,您可以实现RecyclerView,强制您使用ViewHolder

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么在应用程序中不使用“放置”?

来自分类Dev

为什么macOS Catalina中“ /系统/卷/数据/应用程序”和“ /应用程序”中的应用程序相同?

来自分类Dev

为什么不使用xcode将图像导入到iPhone应用程序的资产类别日志中?

来自分类Dev

Chrome应用程序不使用系统代理

来自分类Dev

为什么我的Heroku应用程序不使用Sendgrid发送生产中的电子邮件?

来自分类Dev

为什么heroku应用程序不使用Tiddlywiki保存新文件?

来自分类Dev

为什么一段时间不使用Shiny应用程序会断开连接?

来自分类Dev

为什么我的应用程序不使用声音池启动新活动?

来自分类Dev

为什么云应用程序的文件系统是短暂的

来自分类Dev

为什么不应在 Windows 特定应用程序中使用“系统”

来自分类Dev

何时/什么/为什么/如何/从应用程序中的launchOptions使用UIApplicationOptionsURLKey的值(应用程序:willFinishLaunchingWithOptions :)?

来自分类Dev

我可以在不使用虚拟Mac OS系统的情况下在Ubuntu中开发iOS应用程序吗?

来自分类Dev

为什么没有任何移动操作系统将不活动的应用程序的内存保存到其存储中?

来自分类Dev

当我仅运行一个应用程序(chrome)时,为什么系统会使用2 GB的内存?

来自分类Dev

当应用程序可以作为系统服务运行时,为什么要使用nohup?

来自分类Dev

为什么在Swift ios应用程序中仍然使用NSDictionary和NSArrays?

来自分类Dev

使用CFBundleDocumentTypes:为什么我的应用程序未显示在“共享”菜单中?

来自分类Dev

为什么我的Android应用程序仅在使用引号“ titleOfApp”时显示在playstore中?

来自分类Dev

为什么不对MVC应用程序中的所有操作使用异步?

来自分类Dev

为什么在Flask应用程序开发中必须在PostgreSQL中使用SQLAlchemy?

来自分类Dev

Robolectric不使用测试应用程序

来自分类Dev

为什么在Rails应用程序中重置会话?

来自分类Dev

为什么我在bluemix示例应用程序中超时?

来自分类Dev

为什么图像不显示在应用程序中

来自分类Dev

为什么 JavaFX 应用程序中的按钮变白了?

来自分类Dev

为什么应用程序在此活动中崩溃?

来自分类Dev

为什么此应用程序中的绑定无法更新?

来自分类Dev

为什么在PHP应用程序中使用IOC容器?

来自分类Dev

为什么使用(> 100)部分应用程序?

Related 相关文章

  1. 1

    为什么在应用程序中不使用“放置”?

  2. 2

    为什么macOS Catalina中“ /系统/卷/数据/应用程序”和“ /应用程序”中的应用程序相同?

  3. 3

    为什么不使用xcode将图像导入到iPhone应用程序的资产类别日志中?

  4. 4

    Chrome应用程序不使用系统代理

  5. 5

    为什么我的Heroku应用程序不使用Sendgrid发送生产中的电子邮件?

  6. 6

    为什么heroku应用程序不使用Tiddlywiki保存新文件?

  7. 7

    为什么一段时间不使用Shiny应用程序会断开连接?

  8. 8

    为什么我的应用程序不使用声音池启动新活动?

  9. 9

    为什么云应用程序的文件系统是短暂的

  10. 10

    为什么不应在 Windows 特定应用程序中使用“系统”

  11. 11

    何时/什么/为什么/如何/从应用程序中的launchOptions使用UIApplicationOptionsURLKey的值(应用程序:willFinishLaunchingWithOptions :)?

  12. 12

    我可以在不使用虚拟Mac OS系统的情况下在Ubuntu中开发iOS应用程序吗?

  13. 13

    为什么没有任何移动操作系统将不活动的应用程序的内存保存到其存储中?

  14. 14

    当我仅运行一个应用程序(chrome)时,为什么系统会使用2 GB的内存?

  15. 15

    当应用程序可以作为系统服务运行时,为什么要使用nohup?

  16. 16

    为什么在Swift ios应用程序中仍然使用NSDictionary和NSArrays?

  17. 17

    使用CFBundleDocumentTypes:为什么我的应用程序未显示在“共享”菜单中?

  18. 18

    为什么我的Android应用程序仅在使用引号“ titleOfApp”时显示在playstore中?

  19. 19

    为什么不对MVC应用程序中的所有操作使用异步?

  20. 20

    为什么在Flask应用程序开发中必须在PostgreSQL中使用SQLAlchemy?

  21. 21

    Robolectric不使用测试应用程序

  22. 22

    为什么在Rails应用程序中重置会话?

  23. 23

    为什么我在bluemix示例应用程序中超时?

  24. 24

    为什么图像不显示在应用程序中

  25. 25

    为什么 JavaFX 应用程序中的按钮变白了?

  26. 26

    为什么应用程序在此活动中崩溃?

  27. 27

    为什么此应用程序中的绑定无法更新?

  28. 28

    为什么在PHP应用程序中使用IOC容器?

  29. 29

    为什么使用(> 100)部分应用程序?

热门标签

归档