【问题标题】:Casting exception of LayoutParamsLayoutParams 的强制转换异常
【发布时间】:2016-07-17 10:27:34
【问题描述】:

我有一个活动,其中有一个片段(GFragmentMo 类),它扩展了 ListFragment (support.v4)。
由于我添加了片段,因此每次可见该片段时都会出现异常,我将拉下 android 抽屉,然后将其拉回。

片段的根布局是 LinearLayout,我没有设置任何视图的布局参数。 我在 android 6.0 上运行,但它也在 4.4.2 上被复制。

这是一个例外:

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)

这是我用来放置这个片段的代码:

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

这是包含片段的活动的布局:

<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>

我想在这里提出任何可以帮助解决这个问题的想法。

谢谢

【问题讨论】:

  • 你看到this question了吗?这可能会有所帮助。
  • 我没有更改片段的LayoutParams。不过谢谢!
  • 我建议将根 LinearLayout 更改为其他内容,以查看错误是否仍然存在,或者是否发生了变化。
  • 除此之外,android 期望 WindowManager 的 LayoutParams,你知道我该如何提供吗?使用哪种布局?我会再试一个,只是为了尝试......
  • @Vucko 没用,还是谢谢

标签: android


【解决方案1】:

嗯,问题是在那个片段中的自定义视图中,我错误地调用了getRootView().setLayoutParams(...),这改变了我不想改变的布局参数。

【讨论】:

    猜你喜欢
    • 2019-04-05
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 2013-09-05
    • 2012-02-20
    相关资源
    最近更新 更多