user-interface - ViewPagerIndicator 突然不捕捉或显示寻呼机内容

标签 user-interface android android-viewpager

这是一个奇怪的问题。

这将是一个糟糕的问题,因为我几乎没有信息。

大约两天前,我让 ViewPagerAdapter 工作得很好。我可以滑动,它会在适配器定义的 View 之间切换。

但是,TitlePagerIndicator 突然间(不是靠它自己,我确定我做了什么)没有捕捉到标题并且没有显示任何内容。不对齐我的意思是,如果我向左拖动,标题将位于屏幕的 3/4,而不是对齐到一侧并显示下一页(下面的屏幕截图)。

我已经调试并调用了实例化项,并返回了正确的 View 。

但是,当我打开应用程序时,我收到了很多这样的警告: 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) {
}
}

这是我的 Activity 代码:

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

最佳答案

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

在实例化 View 中:不要忘记将新 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,解决方案应该是一样的。

关于user-interface - ViewPagerIndicator 突然不捕捉或显示寻呼机内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10442357/

相关文章:

java - 任何人都知道如何修复 "Can' t resolve symbol 'Inject'“Android Studio 中的错误?

android - 键盘出现后如何隐藏底部 TabLayout?

android - 使用 TAG `android:switcher: + R.id.ot_pag_main + :0` 查找 fragment 是否安全?

java - LayoutInflater : No output is displayed, 中出现问题并且应用程序崩溃

java - GUI 中的语法问题

android - 如何在全景/全景模式下直接打开相机?

android-fragments - 片段已经在 viewpager 中添加了 IllegalStateException

android:scrollHorizo​​ntally 不适用于 Samsung Galaxy Nexus

javascript - jQuery UI Datepicker - 禁用当前日期但不突出显示

android - 已安装具有相同签名的现有软件包