2016-11-24 4 views
0

はIllegalArgumentException:LinearLayoutManagerはすでに、私は私のRecyclerViewためLayoutManagerを設定しようと、それは言うとき、私はこのExceptionを得たはIllegalArgumentException:LinearLayoutManagerがすでにRecyclerViewに取り付けられている。

RecyclerViewに取り付けられている。LinearLayoutManager is already attached
しかし、 RecyclerViewのLinearLayoutManagerを設定する前に、RecyclerViewLinearLayoutが含まれているかどうかを確認してください。

下の画像のように、あなたはRecyclerView.LayoutManager m =ヌルが表示されますが、例外はまだこれがなぜ起こったか私にはわからない

enter image description here

RecyclerView.LayoutManager m = recyclerView.getLayoutManager(); 
if(recyclerView.getLayoutManager() != null){ 
     return; 
} 
try { 
     recyclerView.setLayoutManager(layoutManager); 
}catch (Exception e){ 
     Log.e("AA", "setRecyclerViewLayoutManager: ", e); 
} 

投げます。 RecyclerViewに新しいLinearLayoutManagerを設定しないようにするにはどうすればよいですか?

は、ここで私は私の問題の解決策を見つけるlogcat

java.lang.IllegalArgumentException: LayoutManager [email protected] is already attached to a RecyclerView: android.support.v7.widget.RecyclerView{1cbedba4 VFED.... .......D 0,0-1080,1181 #7f0d00b6 app:id/recycler_news} 
                    at android.support.v7.widget.RecyclerView.setLayoutManager(RecyclerView.java:1087) 
                    at com.toong.map.utils.BindingUtils.setRecyclerViewLayoutManager(BindingUtils.java:76) 
                    at com.toong.map.databinding.FragmentNewsBaseBinding.executeBindings(FragmentNewsBaseBinding.java:191) 
                    at android.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:355) 
                    at android.databinding.ViewDataBinding$6.run(ViewDataBinding.java:172) 
                    at android.databinding.ViewDataBinding$7.doFrame(ViewDataBinding.java:238) 
                    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:765) 
                    at android.view.Choreographer.doCallbacks(Choreographer.java:580) 
                    at android.view.Choreographer.doFrame(Choreographer.java:549) 
                    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) 
                    at android.os.Handler.handleCallback(Handler.java:739) 
+0

複数のRVがありますか? – Blackbelt

+0

@Blackbeltはありません、私はあなたがlogcatを共有することができます1 'RecyclerView' –

+0

シェア完全なコード –

答えて

2

です。
理由は(私はDaggerInjectそれを使用するので)私のLayoutManagerはシングルトンオブジェクトです。 私はViewリフレッシュ=>RecyclerViewが更新され、私はまだRecyclerViewため、このLayoutManagerを設定すると、エラーがスローされますときにRecyclerViewに設定

=>ソリューションは、シングルトンとしてLayoutManagerを作成しないでObject

+0

にRecyclerViewためのlayoutManager =「」: –

関連する問題