在RecyclerView中设置滚动条属性会导致我的应用崩溃

时间:2015-05-04 05:01:47

标签: android android-recyclerview

我最近开始使用RecyclerView替换旧的ListView。但是,只要我在android:scrollbars="vertical"元素中使用android.support.v7.widget.RecyclerView,我的应用就会崩溃并出现以下错误: Attempt to invoke virtual method 'boolean android.support.v7.widget.RecyclerView$LayoutManager.canScrollVertically()' on a null object reference

这就是我使用RecyclerView的方式:

View rootView;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    rootView = inflater.inflate(R.layout.my_fragment, container, false);
    return rootView;
}
protected void onPostExecute(Boolean result) {
    RecyclerView rv = (RecyclerView) rootView.findViewById(R.id.recyclerview);
    LinearLayoutManager llm = new LinearLayoutManager(context);
    rv.setLayoutManager(llm);
    RecycleViewAdapter adapter = new RecycleViewAdapter(myRecyclerViewAdapter);
    rv.setHasFixedSize(true);
    rv.setAdapter(adapter);
}

这是my_fragment.xml档案:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical">

    </android.support.v7.widget.RecyclerView>

</LinearLayout>

如果我不使用android:scrollbars="vertical",一切都很好。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

使用RecyclerView时,您真的不需要指定scrollbars显示;它是LayoutManager作业,您指定它是垂直还是水平方向,当然滚动条显示会自动更改您选择的方向。

//for vertical scrollbar and orientation
LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false);  

//for horizontal scrollbar and orientation 
LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);