RecyclerView.ViewHolder unable to bind view with ButterKnife
<p>I'm using <code>ButterKnife</code> to bind my views on my <code>ViewHolder</code>. My code is below:</p>

<pre><code>public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.ViewHolder&gt; {

    private List&lt;DataObject&gt; data;

    public MyAdapter(List&lt;DataObject&gt; data) {
        this.data = data;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.my_layout, parent, false);
        return new ViewHolder(view);
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        @BindView(R.id.row_header_view) View rowHeaderView;
        @BindView(R.id.row_header_view_text) TextView headerTextView;

        @BindView(R.id.row_data_view) View rowDataView;
        @BindView(R.id.row_data_view_text) TextView rowDataTextView;
        @BindView(R.id.row_data_view_detail_text) TextView rowDataDetailTextView;

        public ViewHolder(View view) {
            super(view);
            ButterKnife.bind(this, view);
        }
    }
}
</code></pre>

<p>For some reason in my <code>ViewHolder</code> all of the <code>BindView</code>'s do nothing. They are all null. I can confirm with certainty they are in my layout. What is wrong with my above code? I have used it as per the documentation listed here:</p>

<p><a href="http://jakewharton.github.io/butterknife/#reset">http://jakewharton.github.io/butterknife/#reset</a></p>

<p>Is there anything else required? I'm using <code>ButterKnife</code> version:</p>

<pre><code>compile 'com.jakewharton:butterknife:8.2.1'
</code></pre>

<p>If I add the below line:</p>

<pre><code>rowHeaderView = view.findViewById(R.id.row_header_view);
</code></pre>

<p>It's able to get the view properly. But how does this make sense? Isn't <code>ButterKnife</code> usable where <code>findViewById</code> is usable?</p>