-1

全画面表示/通常表示のフラグメントを使用してフォトビューアを実装しようとしています。ここでアクティビティを含む API サンプルを参照してください: https://android.googlesource.com/platform/development/+/master/samples/ApiDemos/src/com/example/android/apis/view/ContentBrowserActivity.java

しかし、私はAndroidバージョン<ハニカムで奇妙なバグに気づきました。フラグメント内に OnSystemUiVisibilityChangeListener を実装すると、アプリケーションが NoClassDefFoundError でクラッシュします。Android 4 では、すべて正常に動作します。このバグの回避策はありますか?

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    PhotoViewPager viewPager = new PhotoViewPager(getActivity());
    viewPager.setTag("photoViewPager");
    viewPager.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
        @Override
        public void onSystemUiVisibilityChange(int visibility) {
            int diff = mLastSystemUiVis ^ visibility;
            mLastSystemUiVis = visibility;
            if ((diff & View.SYSTEM_UI_FLAG_LOW_PROFILE) != 0
                    && (visibility & View.SYSTEM_UI_FLAG_LOW_PROFILE) == 0) {
                setNavVisibility(true);
            }
        }
    });
    return viewPager;
}

スタックトレース

 ERROR/AndroidRuntime(12708): FATAL EXCEPTION: main
 java.lang.NoClassDefFoundError: com.ex.android.main.photos.photo.PhotoFragment$2
 at com.ex.android.main.photos.photo.PhotoFragment.onCreateView(PhotoFragment.java:87)
 at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
4

1 に答える 1

0

View.OnSystemUiVisibilityChangeListenerは API レベル 11 で導入されました。

したがって、変更リスナー コードを互換性ラッパーに配置する必要があります。

于 2013-10-11T17:50:06.740 に答える