在Android 8.0 / Oreo上并不总是调用onCreateView上的活动

时间:2017-10-24 04:21:33

标签: android android-activity android-8.0-oreo

我收到了这次车祸:

  

android.view.InflateException:二进制XML文件行#32:二进制XML   文件行#32:类MyInterface不是视图

Android O 之前,我正在将MyInterface初始化为ViewActivity.onCreateView的子类,例如:

@Override
public View onCreateView(String name, Context context, AttributeSet attrs) {
    if (name.equals(MyInterface.class.getName())) {
        View v = MyView.create(this, attrs);
        return v;
    }

    return super.onCreateView(name, context, attrs);
}

这是Fragment的xml大纲(是的,不是活动。):

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    <MyInterface
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

在某些情况下,在Android O上没有调用onCreateView(String, Context, AttributeSet)

我已尝试过Android O行为更改文档,但我没有看到此功能的任何内容。

1 个答案:

答案 0 :(得分:0)

bugzilla中的这篇文章:https://bugzilla.mozilla.org/show_bug.cgi?id=1377819 建议Firefox for Android通过交换

来解决这个问题

onCreateView(String name, Context context, AttributeSet attrs)

onCreateView(View parent, String name, Context context, AttributeSet attrs)

解决问题。我打算尝试这个,但我想有人可能会有更详细的答案。