2012-05-04 11 views
1

これは問題です。ViewPagerIndicatorが突然ポケットベルの内容をスナップまたは表示しない

私は情報がほとんどないため、これはひどい疑問です。

約2日前、私はViewPagerAdapterを正常に動作させました。私はスワイプすることができ、それはアダプタによって定義されたビュー間を切り替えるでしょう。

しかし、突然(それ自体ではなく、私が何かしたと確信しています)、TitlePagerIndicatorは見出しにスナップしてコンテンツを表示しません。スナップしないと、左にドラッグすると、タイトルが横にスナップして次のページを表示するのではなく、画面の3/4に座ります(下のスクリーンショット)。

アイテムをデバッグしてインスタンス化し、適切なビューが返されました。しかし

、私はこのような警告の多くを得ているアプリ開く: VFY:仮想メソッド3015解決することができませんでし:Landroid /ウィジェット/のLinearLayoutを、.getAlpha()F VFY:直接解決することができませんでしメソッド3011:Landroid/widget/LinearLayout; VVFY:バーチャルメソッドを解決できません2965:Landroid/widget/FrameLayout; .setAlpha(F)V

私はこれが問題であると仮定しています私のインポートでは、すべてがうまくコンパイルされ、私はライブラリプロジェクトとしてだけでなく、シャーロックViewPagerIndicatorを持っています。

は、ここに私のアダプタのコードです:

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

+0

初心者のために、あなたはプロジェクトをきれいにして、Eclipseを再起動しましたか? –

+0

何度も。私は2,3日前にアンドロイドのサポートジャーナルをプロジェクト間で突然突き合わせることで問題を抱えていました。だから私はAndroidのソースフォルダから最新のものにすべてを更新しました。問題が始まったのは間違いないと私は確信しています。しかし、私はViewPagerIndicator git sourceで提供されているものに戻しました。ダイスはありません。私はSherlockのgitソースに含まれているものを使ってみて、それが何かをするかどうかを見てみましょう。別のバージョンのサポートパッケージを使用すると問題が発生する可能性がありますか? –

+0

ええ、それは問題を引き起こすかもしれないもののように思えます。もしあなたのコードが間違っているとは思わないが、ここで役に立つ回答が得られる可能性が高いのかどうかはわからない。あなたのプロジェクトには問題がなければなりません。 –

答えて

3

を単に動的なフラグメントを作成し、代わりにFragmentPagerAdapterのサブクラスを作成し、今それだけで正常に動作

に忘れてはいけません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を取得し、解決策は同じでなければなりません。

+0

私はそれが正しいと仮定してこの回答を受け入れています:)私の方法を変更したので、私は確認できません。しかし、これは私の問題を解決したように見えます。 –

0

まあ、私はきた壁に頭を強打の数日後に私のViewPagerAdapterが問題であったという結論に至りました。 instantiateViewで

::他の誰かが同じ問題を取得する場合、私は...