小编Fra*_* M.的帖子

在NotifyDataSetChanged()之后,RecyclerView不会更新,打开和关闭屏幕后会显示内容

我是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)

android adapter fragment retrofit android-recyclerview

5
推荐指数
1
解决办法
2555
查看次数

Unity / C#:在另一个函数完成执行后如何执行一个函数?

我一直在尝试为我正在从事的项目构建“事件系统”。这是我的操作方法:我参照一个gameObject以及需要从该gameObject执行的功能填充一个列表。然后,当“事件”被触发时(在这种情况下,当玩家进入触发对撞机时),我只需遍历列表并调用其中的功能。

问题在于列表中的每个函数都同时执行。在某些情况下这可以正常工作,但是如果我想创建一个更具电影风格的事件,我需要有能力在上一个函数完成执行后执行一个函数。可悲的是,我不知道该怎么做。

我已经阅读了很多有关协程和委托的Unity和C#文档,但是我似乎无法将所有这些东西都缠起来,并找到一种在代码上实现它们的方法。因此,我需要您的帮助:我如何实现这一目标?

events delegates yield coroutine unity-game-engine

2
推荐指数
1
解决办法
6357
查看次数