返回不起作用,getItemViewType行为非常奇怪 - 我无法解释它

时间:2016-08-27 12:38:09

标签: android android-recyclerview

我有一个RecyclerView适配器,以及' getItemViewType'中的以下代码方法:

 if (position == 0) {
        return Post.PostTypeHeader;
 }
 return Container.postList.get(position).type;

"位置" value为0,当代码输入if时,返回Post.PostTypeHeader。但随后,它立即进入下一行。怎么可能?我也试过'如果'和'其他'并且如果'那么代码将在两者中执行。和其他'。

Here是Android中的视频调试

2 个答案:

答案 0 :(得分:1)

已经回答过了 [Simple function going past return statementAndroid Studio debugger highlights the wrong lines

简而言之,尝试重建您的项目,如果这不能帮助您重新启动android studio。

答案 1 :(得分:0)

在调试开启时,从用户的角度来看可能会让人感到困惑。但是,两个返回语句都不能在单个流上执行,并且这些语句确实不会立即执行。

您可以通过添加两个这样的日志语句来验证方案,

if (position == 0) {
    Log.d("Inside if statement");
    return Post.PostTypeHeader;
 }
 Log.d("Outside if statement")'
 return Container.postList.get(position).type;

只会根据position的值执行一个日志记录。