2016-07-17 3 views
1

ListFragment (support.v4)를 확장하는 조각 (GFragmentMo 클래스)이있는 활동이 있습니다.
조각을 추가 했으므로이 조각이 표시 될 때마다 예외가 발생하며 안드로이드 서랍을 당긴 다음 다시 잡아 당깁니다.LayoutParams의 캐스팅 예외

프래그먼트의 루트 레이아웃은 LinearLayout이며 레이아웃 매개 변수는 뷰를 지정하지 않습니다. Android 6.0에서 실행 중이지만 4.4.2에서도 재현되었습니다.

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 
     ... 
    </android.support.design.widget.AppBarLayout> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="?android:attr/actionBarSize" 
     android:layout_marginTop="?android:attr/actionBarSize" 
     android:id="@+id/cContainer"> 
     <fragment 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/fragmentA" 
      android:visibility="gone" 
      class="com.google.android.gms.cast.framework.media.widget.MiniControllerFragment" /> 
    </FrameLayout> 
    <FrameLayout 
     android:id="@+id/fragment_holder" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
</android.support.design.widget.CoordinatorLayout> 
:이 단편을 보유하는 활성 레이아웃

getSupportFragmentManager().beginTransaction().replace(R.id.fragment_holder, new GFragmentMo(), null).addToBackStack(null).commit(); 

이다

java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.view.WindowManager$LayoutParams 
                   at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:4221) 
                   at android.os.Handler.dispatchMessage(Handler.java:102) 
                   at android.os.Looper.loop(Looper.java:158) 
                   at android.app.ActivityThread.main(ActivityThread.java:7229) 
                   at java.lang.reflect.Method.invoke(Native Method) 
                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 

이 I이 단편을 넣어 사용하는 코드이다 : 여기

는 예외

이 문제를 해결하는 데 도움이되는 아이디어가 필요합니다.

감사

+0

[이 질문이 표시됩니까? (http://stackoverflow.com/questions/10045360/getting-classcastexception-when-trying-to-insert-relativelayout-dyanmically/10046252#10046252)? 도움이 될 수도 있습니다. – Vucko

+0

조각의 LayoutParams를 변경하지 않았습니다. 하지만 고마워! – Yaniv

+0

루트 LinearLayout을 다른 것으로 변경하여 오류가 지속되는지 또는 변경되는지 확인하는 것이 좋습니다. – Vucko

답변

0

음, 문제는 그 조각에 있던 사용자 지정보기에, 내가 실수 getRootView().setLayoutParams(...)에 의해 호출하고 내가 변경을 의미하지 않았다 레이아웃 PARAMS을 변경이었다.

관련 문제