What are the advantages of this approach (using static nested class in my class MyAdapter extends RecyclerView.Adapter):
static class MyVH extends RecyclerView.ViewHolder {...}
And this approach (using member inner class):
class MyVH extends RecyclerView.ViewHolder {...}
Or it doesn't affect performance and both approaches could be used?
It is more a java question than an Android question. It is recommended to use static for inner classes to avoid memory leaks if you will take their instances out of the class. You can have a look at this awesome post that explains the memory leaks on inner classes.
Basically what nyx says:
Answering your performance question, you can have a look at this answer. The static one will take less memory than the other one, but again, we are talking about recyclers which will recycle the instances, so the memory impact is not a problem.