我的应用程序使用Android的ViewPager和FragmentStatePagerAdapter,它只需要支持Android 4.x或更高版本。我正在使用v13支持库来处理ViewPager,因此我不需要处理SupportFragments,我只需要使用
问题:support v13库的
编辑:我添加了文件的导入和相关代码,以展示我的问题。
在我的类中(它没有继承任何东西),我正在尝试在这个方法中设置页面转换器:
我遇到的具体错误是
我可能做错了什么,但还是无法解决问题。感谢您提供的任何帮助。
Android.app.Fragment
。一切都按预期工作,但现在我正在尝试向我的ViewPager添加一个PageTransformer
,但遇到了问题。
ViewPager.setPageTransformer(bool, PageTransformer)
未被识别为方法,PageTransformer
也未被识别为类(我尝试了许多导入的组合,但无济于事)。使用v4支持库,ViewPager.setPageTransformer
是一个方法,但如果我使用支持库v4,我必须使用SupportFragments
,这我认为是不必要的,因为我支持的Android版本。问题:support v13库的
ViewPager
是否支持PageTransformers?使用本地Fragments是否有任何好处,还是应该使用支持库v4?编辑:我添加了文件的导入和相关代码,以展示我的问题。
import java.lang.reflect.Field;
import android.app.Fragment;
import android.app.FragmentManager;
import android.support.v13.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
在我的类中(它没有继承任何东西),我正在尝试在这个方法中设置页面转换器:
public View createView(LayoutInflater inflater, ViewGroup container) {
// Inflate the layout containing a title and body text.
ViewGroup rootView = (ViewGroup) inflater
.inflate(R.layout.carousel_fragment, container, false);
mContainer = (PagerContainer) rootView.findViewById(R.id.pager_container);
//PagerContainer makes it easy to display more than one page from the ViewPager
//on screen at once
mPager = mContainer.getViewPager();
mAdapter = new MyPagerAdapter(MainActivity.getActivity().getFragmentManager());
mPager.setAdapter(mAdapter);
mPager.setOffscreenPageLimit(2);
mPager.setPageMargin(10);
mPager.setClipChildren(false);
mPager.setCurrentItem(mPager.getAdapter().getCount()/2, false);
mPager.setPageTransformer(false, new PageTransformer(){
@Override
public void transformPage(View page, float position) {
// do something that isn't default behavior
}
});
Field mScroller;
try {
mScroller = ViewPager.class.getDeclaredField("mScroller");
mScroller.setAccessible(true);
CustomScroller scroller = new CustomScroller(MainActivity.getContext());
mScroller.set(mPager, scroller);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return rootView;
}
我遇到的具体错误是
cannot find symbol: PageTransformer
,setPageTransformer
方法也有类似的错误。我的项目使用了android-support-v13.jar
但没有v4.jar,因为当我同时包含它们时会出现DEX错误。我可能做错了什么,但还是无法解决问题。感谢您提供的任何帮助。