ViewPagerIndicator不会突然捕捉或显示寻呼机内容

时间:2012-05-04 03:35:13

标签: android user-interface android-ui android-viewpager

这是一个奇怪的问题。

这将是一个可怕的问题,因为我几乎没有任何信息。

大约两天前,我让ViewPagerAdapter正常工作。我可以滑动,它会在适配器定义的视图之间切换。

然而,突然(不是我自己确实做了一些事情)TitlePagerIndicator没有捕捉到标题而且没有显示任何内容。通过不捕捉我的意思是,如果我向左拖动,标题将位于屏幕的3/4而不是捕捉到侧面并显示下一页(下面的屏幕截图)。

我已调试并实例化项目,并返回正确的视图。

但是,当我打开应用程序时,我收到了很多类似的警告: VFY:无法解析虚方法3015:Landroid / widget / LinearLayout; .getAlpha()F VFY:无法解析直接方法3011:Landroid / widget / LinearLayout;。 (Landroid /内容/上下文; Landroid / util的/ AttributeSet中;我)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));
}

Title indicator not snapping

2 个答案:

答案 0 :(得分:3)

如果其他人遇到同样的问题:

在instantiateView中:不要忘记将新视图附加到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,解决方案应该是相同的。

答案 1 :(得分:0)

经过几天撞墙后,我得出结论,我的ViewPagerAdapter就是问题所在。

我只是简单地创建了一个动态片段并创建了FragmentPagerAdapter的子类,现在它工作得很好......