这是一个棘手的问题。
这将是一个可怕的问题,因为我几乎没有信息。
大约两天前,我让ViewPagerAdapter工作正常。我可以滑动,它将在适配器定义的视图之间切换。
但是,突然之间(不是我自己确定要做的事情本身),TitlePagerIndicator不会捕捉到标题,也不显示任何内容。不对齐是指如果我向左拖动,标题将位于屏幕的3/4,而不是对齐到侧面并显示下一页(下面的屏幕截图)。
我已调试并调用了实例化项,并返回了正确的视图。
但是,当我打开该应用程序时,会收到很多如下警告:
VFY:无法解析虚拟方法3015:Landroid / widget / LinearLayout; .getAlpha()F
VFY:无法解析直接方法3011:Landroid / widget / LinearLayout;。 (Landroid / content / Context; Landroid / util / AttributeSet; I)V
VFY:无法解析虚拟方法2965:Landroid / widget / FrameLayout; .setAlpha(F)V
我以为这是我导入的问题,但是一切编译都很好,我把ViewPagerIndicator作为库项目,还有Sherlock。
这是我的适配器代码:
public class ViewPagerAdapter extends PagerAdapter implements TitleProvider {
private static String[] titles = new String[] {
"My Klinks",
"Received Klinks"
};
private final Context context;
public ViewPagerAdapter(Context context) {
this.context = context;
}
public String getTitle(int position) {
return titles[position];
}
@Override
public int getCount() {
return titles.length;
}
@Override
public Object instantiateItem(View pager, int position) {
TextView t = new TextView(context);
t.setText("WheeeE");
return t;
}
@Override
public void destroyItem(View pager, int position, Object view) {
((ViewPager) pager).removeView((TextView) view);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
@Override
public void finishUpdate(View view) {
}
@Override
public void restoreState(Parcelable p, ClassLoader c) {
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate(View view) {
}
}
这是我的活动代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.main );
// set up the slidey tabs
ViewPagerAdapter adapter = new ViewPagerAdapter( this );
ViewPager pager = (ViewPager)findViewById( R.id.viewpager );
TitlePageIndicator indicator = (TitlePageIndicator)findViewById( R.id.indicator );
pager.setAdapter( adapter );
indicator.setViewPager( pager );
// set up the action bar
final ActionBar ab = getSupportActionBar();
ab.setBackgroundDrawable(getResources().getDrawable(R.drawable.ad_action_bar_gradient_bak));
}
最佳答案
如果其他人遇到相同的问题:
在instantiateView中:不要忘记将新的View附加到ViewPager:
@Override
public Object instantiateItem(View pager, int position) {
TextView t = new TextView(context);
t.setText("WheeeE");
((ViewPager)pager).addView(t);
return t;
}
当前版本的InstantiateItem获取一个ViewGroup而不是一个View,解决方案应该相同。
关于android - ViewPagerIndicator不会突然捕捉或显示寻呼机内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10442357/