我正在尝试基于兼容性库中的新ViewPager创建应用程序。 当我从示例应用程序中复制行时:
setContentView(R.layout.main);
MyAdapter mAdapter = new MyAdapter(getSupportFragmentManager(), this);
ViewPager mPager = (ViewPager) findViewById(R.id.view_pager);
mPager.setAdapter(mAdapter);
使用以下main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/view_pager"
/>
<LinearLayout>
我得到了
java.lang.ClassCastException: android.support.v4.app.NoSaveStateFrameLayout
在我投射到ViewPager的行。 有谁知道为什么会这样?
答案 0 :(得分:3)
实际上问题是旧布局膨胀问题(看here)。出于某些神奇的原因,findViewByID在此处不返回null。而不是返回null它返回一个android.support.v4.app.NoSaveStateFrameLayout,这非常有趣btw。
答案 1 :(得分:-2)
当您尝试将对象强制转换为与其不兼容的类型时,会发生类强制转换异常。因此,请检查您正在进行的ViewPager
实例化是否正确。