动态更改GridLayoutManager的SpanCount

时间:2019-05-18 20:10:08

标签: java android android-recyclerview gridlayoutmanager

我正在尝试在{strong> 2 和 3 之间更改SpanCount的{​​{1}}(网格中的列数)。

>

GridLayoutManager中设置SpanCount

onCreate()

使用 if (getActivity() != null) layoutManager = new GridLayoutManager(getActivity(), getPreferenceSpanCount(getActivity())); 保存SpanCount并更改SharedPreferencesLayout行)取决于RecyclerView

SpanCount

获取使用private int getSpanCount() { if (getPreferenceSpanCount(getActivity()) == 2) { return R.layout.pic_items_two; } else { return R.layout.picture_item; } } 保存的SpanCount

SharedPreferences

在我获取数据时设置public static Integer getPreferenceSpanCount(Context context) { SharedPreferences sharedPreferences = context.getSharedPreferences(SettingsActivity.SHARED_PREFS_SPAN_COUNT, MODE_PRIVATE); return sharedPreferences.getInt(SettingsActivity.KEY_SPAN_COUNT, 3); }

SpanCount

一切正常,但是我在Google Play控制台中的ANR和崩溃下得到了很多报告:

  

java.lang.NullPointerException:在   maa.app.Fragments.fragmentAnime $ 3.onSuccess(fragmentAnime.java:87)
  在maa.app.Fragments.fragmentAnime $ 6.a(fragmentAnime.java:52)在   maa.app.Fragments.fragmentAnime $ 6.onResponse(fragmentAnime.java:2)
  在com.android.volley.request.StringRequest.c(StringRequest.java:4)
  在com.android.volley.request.StringRequest.a(StringRequest.java:2)
  在com.android.volley.ExecutorDelivery $ ResponseDeliveryRunnable.run   (ExecutorDelivery.java:30)位于android.os.Handler.handleCallback   (Handler.java:789)位于android.os.Handler.dispatchMessage   (Handler.java:98)位于android.os.Looper.loop(Looper.java:164)位于   android.app.ActivityThread.main(ActivityThread.java:6944)位于   java.lang.reflect.Method.invoke(Method.java)在   com.android.internal.os.Zygote $ MethodAndArgsCaller.run   (Zygote.java:327)在com.android.internal.os.ZygoteInit.main   (ZygoteInit.java:1374)

0 个答案:

没有答案