我是Android的新手,我和一群来自大学的朋友一起构建和应用.我们遇到的问题是,当通过从服务器获取数据来填充要显示的元素列表时,数据会加载并添加到列表中,但recyclerView从不显示它(甚至在从我的自定义适配器调用NotifyDataSetChanged之后).当我们使用硬编码数据来测试应用程序时,这种情况从未发生过.
奇怪的是,在关闭显示器然后再打开后,我会在recyclerView上显示元素列表(当我重新打开屏幕时,我的自定义适配器的onBindViewHolder会被调用).另外,如果我替换片段包含recyclerView与另一个,然后返回到它,数据加载到列表但未显示.
我想知道的是为什么会发生这种情况以及我该怎么做才能解决它(通过解决它我的意思是当我启动片段并在向我添加更多元素时更新recyclerView时,显示正确填充了正确项目的recyclerView名单)
我们使用自定义adpater和Retrofit从服务器获取数据.
这是代码
包含recyclerView的片段
public class EventViewListFragment extends Fragment implements EventListAdapter.ClickListener{
private RestClient restClient;
private Builder builder;
private String token ;
private boolean userScrolled = true;
int pastVisiblesItems, visibleItemCount, totalItemCount;
private LinearLayoutManager mLayoutManager;
private RecyclerView recyclerView;
private EventListAdapter eventListAdapter;
private Button btnNewEvent;
FloatingActionButton suggestFAB;
private int currentPage=1;
public EventViewListFragment(){
restClient = new RestClient();
}
@Override
public void onCreate(Bundle savedInstanceState) {
System.out.println("Se llamo al onCreate de EventViewListFragment");
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { …Run Code Online (Sandbox Code Playgroud) 我一直在尝试为我正在从事的项目构建“事件系统”。这是我的操作方法:我参照一个gameObject以及需要从该gameObject执行的功能填充一个列表。然后,当“事件”被触发时(在这种情况下,当玩家进入触发对撞机时),我只需遍历列表并调用其中的功能。
问题在于列表中的每个函数都同时执行。在某些情况下这可以正常工作,但是如果我想创建一个更具电影风格的事件,我需要有能力在上一个函数完成执行后执行一个函数。可悲的是,我不知道该怎么做。
我已经阅读了很多有关协程和委托的Unity和C#文档,但是我似乎无法将所有这些东西都缠起来,并找到一种在代码上实现它们的方法。因此,我需要您的帮助:我如何实现这一目标?