gpt4 book ai didi

java - Android 中管理 View 重用的代码在哪里?

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:42 26 4
gpt4 key购买 nike

管理View的源码在哪?在 Android 中重复使用?我可以想到这个过程的三个不同部分,但可能还有更多:

  1. 确定是否为 View 的逻辑有资格重复使用
  2. 管理 View 池的代码可以重复使用的 s
  3. 删除可重复使用的代码 View从池中取出并重置其属性值以表示逻辑上不同的 View

编辑: 博客文章 Developing applications for Android – gotchas and quirks给出以下示例:

public class PencilWise extends ListActivity {
View activeElement;
// ...
@Override
public void onCreate ( Bundle savedInstanceState ) {
// ...
this.getListView( ).setOnItemClickListener ( new OnItemClickListener ( ) {
public void onItemClick ( AdapterView<?> parent, View view, int position, long id ) {
MyActivity.this.activeElement = view;
MyActivity.this.showDialog ( DIALOG_ANSWER );
}
} );
}
}

The showDialog method will display the answer dialog, which needs to know what question the user has opened. The problem is that by the time the dialog opens, the view passed to onItemClick might have been reused, and so activeElement would no longer point to the element the user clicked to open the dialog in the first place!

最佳答案

View 回收由 AbsListView 及其子类 ListViewGridView 执行。您可以在此处找到这些类的源代码:https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/widget

ListViewAbsListView 开始。

关于java - Android 中管理 View 重用的代码在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4843740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com