3

私の以前のサポートライブラリのバージョンは24.1.1です。アプリは正常に動作します。しかし、バージョン24.2.0にアップグレードした後は、起動時に強制停止されます。私のアプリのMainActivityにはBottomSheetBehaviorビューとFloatingActionButtonが含まれています。ここでエラーメッセージがあります:Androidサポートライブラリを24.2.0にアップグレードすると、アプリがクラッシュする

java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.support.design.widget.CoordinatorLayout$LayoutParams 
at android.support.design.widget.FloatingActionButton$Behavior.isBottomSheet(FloatingActionButton.java:597) 
at android.support.design.widget.FloatingActionButton$Behavior.onDependentViewChanged(FloatingActionButton.java:589) 
at android.support.design.widget.FloatingActionButton$Behavior.onDependentViewChanged(FloatingActionButton.java:528) 
at android.support.design.widget.CoordinatorLayout.offsetChildToAnchor(CoordinatorLayout.java:1564) 
at android.support.design.widget.CoordinatorLayout.onChildViewsChanged(CoordinatorLayout.java:1233) 
at android.support.design.widget.CoordinatorLayout$OnPreDrawListener.onPreDraw(CoordinatorLayout.java:1812) 
... 
... 

アップデート:ここに私のMainActivityのレイアウトは、それがバグであるならば、私は知りませんが、現在24.2.0とFABができない

<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=".ui.MainActivity"> 

    <include 
     android:id="@id/appBar" 
     layout="@layout/app_bar_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:viewPagerTab="@{(currentFragment instanceof SongBookTabFragment)? viewPagerTab : null}" /> 

    <android.support.v4.widget.SwipeRefreshLayout 
     android:id="@+id/swipeRefresh" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

     <FrameLayout 
      android:id="@+id/container" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </android.support.v4.widget.SwipeRefreshLayout> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|end" 
     android:layout_margin="@dimen/fab_margin" 
     android:onClick="clickFAB" 
     app:layout_anchor="@id/container" 
     app:layout_anchorGravity="bottom|right|end" 
     app:layout_behavior="com.boombile.originalsong.ui.widget.ScrollAwareFABBehavior" 
     app:srcCompat="@drawable/ic_menu_send" /> 

    <include 
     android:id="@+id/bottomSheetPlayer" 
     layout="@layout/view_bottom_sheet_player" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:layout_behavior="@string/bottom_sheet_behavior" /> 

</android.support.design.widget.CoordinatorLayout> 
+0

レイアウトを投稿できますか? –

+0

@TinTran、私の更新を見てください。 – maohieng

+0

はあなたのパッケージ名にcom.boombile.originですか? com.boombile.originalsong.ui.widget.ScrollAwareFABBehaviorも投稿できますか? –

答えて

3

です間接的な子どもたちには、より長く固定してください。CoordinatorLayout

layout_anchorは、直接の子供と一緒に働くCoordinatorLayoutです。他のビューを使用するにはlayout_anchorを変更する必要があります。 details here

 @Override 
     public boolean onDependentViewChanged(CoordinatorLayout parent, FloatingActionButton child, 
       View dependency) { 
      if (dependency instanceof AppBarLayout) { 
       // If we're depending on an AppBarLayout we will show/hide it automatically 
       // if the FAB is anchored to the AppBarLayout 
       updateFabVisibilityForAppBarLayout(parent, (AppBarLayout) dependency, child); 
      } else if (isBottomSheet(dependency)) { 
       updateFabVisibilityForBottomSheet(dependency, child); 
      } 
      return false; 
     } 

     private static boolean isBottomSheet(View view) { 
      CoordinatorLayout.LayoutParams lp = 
        (CoordinatorLayout.LayoutParams) view.getLayoutParams(); 
      return lp != null && lp.getBehavior() instanceof BottomSheetBehavior; 
     } 

より:

あなたはFloatingActionButtonのソースコードを確認することができます。

+0

そうです。ありがとうございました。今私はこの新しいバージョンで他の新しい問題を抱えています。 : - / – maohieng

関連する問題