2016-05-28 6 views
0

私はAndroidアプリケーションを開発中です。私は自分のアプリケーションでRecyclerViewを使用しようとしています。そこで、私は自分のレイアウトファイルにRecyclerXmlを追加しました。しかし、私は私のアプリを実行すると、それは間違いを投げている。下記の私のシナリオをご覧ください。RecyclerViewがAndroidのxmlレイアウトファイルに追加されたときにスローするエラー

これは

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="match_parent" android:fitsSystemWindows="true" 
    tools:context=".MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/htab_appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 
     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/htab_collapse_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="@dimen/main_activity_parallax_initial_height" 
      android:fitsSystemWindows="true" 
      app:contentScrim="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 
      <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 
       <ImageView 
        android:id="@+id/htab_header" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:background="@drawable/apple" 
        android:fitsSystemWindows="true" 
        android:scaleType="centerCrop" 
        app:layout_collapseMode="parallax" /> 
       <TextView 
        android:layout_centerInParent="true" 
        android:text="HELLO" 
        android:textSize="20dp" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 
      </RelativeLayout> 
      <android.support.v7.widget.Toolbar 
       android:id="@+id/htab_toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="@dimen/main_activity_toolbar_height" 
       android:gravity="top" 
       android:minHeight="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:titleMarginTop="13dp" /> 
      <!-- <android.support.design.widget.TabLayout 
       android:id="@+id/htab_tabs" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:layout_gravity="bottom" 
       app:tabIndicatorColor="@android:color/white" />--> 
     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 
    <FrameLayout 
     android:id="@+id/default_content_container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"></FrameLayout> 
</android.support.design.widget.CoordinatorLayout> 

私main_activityのxmlですそれから私は、フラグメントとdefault_content_containerの内容を設定します。

これは私が何を初期化していなかったと私はフラグメントに何もしないリサイクルビュー

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <android.support.v7.widget.RecyclerView 
     android:id="@+id/dc_rv_destination" 
     android:scrollbars="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> </LinearLayout> 

とフラグメントのxmlです。

しかし、実行すると、このエラーが表示されます。

05-28 14:42:15.956 8654-8654/com.deltatripagent.deltatripagent W/EGL_genymotion: eglSurfaceAttrib not implemented 
05-28 14:42:15.956 8654-8654/com.deltatripagent.deltatripagent E/OpenGLRenderer: Getting MAX_TEXTURE_SIZE from GradienCache 
05-28 14:42:15.956 8654-8654/com.deltatripagent.deltatripagent E/OpenGLRenderer: Getting MAX_TEXTURE_SIZE from Caches::initConstraints() 
05-28 14:42:15.960 8654-8654/com.deltatripagent.deltatripagent D/OpenGLRenderer: Enabling debug mode 0 
05-28 14:42:15.960 8654-8654/com.deltatripagent.deltatripagent E/RecyclerView: No adapter attached; skipping layout 
05-28 14:42:15.964 8654-8654/com.deltatripagent.deltatripagent D/AndroidRuntime: Shutting down VM 
05-28 14:42:15.964 8654-8654/com.deltatripagent.deltatripagent W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0xa4bc9648) 
05-28 14:42:15.964 8654-8654/com.deltatripagent.deltatripagent W/ViewRootImpl: Dropping event due to no window focus: KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_ALT_RIGHT, scanCode=100, metaState=META_ALT_ON|META_ALT_RIGHT_ON, flags=0x8, repeatCount=25349, eventTime=1585081, downTime=277306, deviceId=1, source=0x301 } 
05-28 14:42:15.964 8654-8654/com.deltatripagent.deltatripagent W/ViewRootImpl: Dropping event due to no window focus: KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_ALT_RIGHT, scanCode=100, metaState=META_ALT_ON|META_ALT_RIGHT_ON, flags=0x8, repeatCount=25350, eventTime=1585450, downTime=277306, deviceId=1, source=0x301 } 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime: FATAL EXCEPTION: main 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime: java.lang.NullPointerException 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.support.v7.widget.RecyclerView.computeVerticalScrollRange(RecyclerView.java:1654) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.onDrawScrollBars(View.java:11596) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.draw(View.java:13950) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.support.v7.widget.RecyclerView.draw(RecyclerView.java:3097) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12838) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12880) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.draw(View.java:13657) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.drawChild(ViewGroup.java:3086) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2923) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12833) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12880) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.draw(View.java:13657) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.drawChild(ViewGroup.java:3086) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2923) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12833) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12880) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.draw(View.java:13657) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.drawChild(ViewGroup.java:3086) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.support.design.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1077) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2923) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12833) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12880) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.draw(View.java:13657) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.drawChild(ViewGroup.java:3086) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2923) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.draw(View.java:13947) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.widget.FrameLayout.draw(FrameLayout.java:467) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12838) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12880) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.draw(View.java:13657) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.drawChild(ViewGroup.java:3086) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2923) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12833) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12880) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.draw(View.java:13657) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.drawChild(ViewGroup.java:3086) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2923) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12833) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12880) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.draw(View.java:13657) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.drawChild(ViewGroup.java:3086) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2923) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12833) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12880) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.draw(View.java:13657) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.drawChild(ViewGroup.java:3086) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2923) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.draw(View.java:13947) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.widget.FrameLayout.draw(FrameLayout.java:467) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2224) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12838) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.View.getDisplayList(View.java:12880) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.HardwareRenderer$GlRenderer.buildDisplayList(HardwareRenderer.java:1411) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1359) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewRootImpl.draw(ViewRootImpl.java:2367) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2239) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1872) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.Choreographer.doCallbacks(Choreographer.java:562) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.Choreographer.doFrame(Choreographer.java:532) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.os.Handler.handleCallback(Handler.java:730) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:92) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:137) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:5103) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime:  at java.lang.reflect.Method.invokeNative(Native Method) 
05-28 14:42:15.968 8654-8654/com.deltatripagent.deltatripagent E/AndroidRuntime: at java.la 

なぜリサイクラービューを追加できないのですか?代わりにリストビューを追加すると、アプリを実行できます。

答えて

1

これは、「何も初期化していないため、断片化していない」ために起こります。

リサイクルビューは、膨張した直後にLayoutManagerを初期化して表示する必要があります。

これは、LayoutManagerでRecycleViewのレイアウト計算が頻繁に行われるためです。フラグメント間、フラグメントレイアウトを膨張させた後、簡単な修正を前記

onCreateViewそれにレイアウトマネージャを追加介し:

recycler.setLayoutManager(/* add here your layout manager of choice */); 
関連する問題