2016-06-18 11 views
0

これらのレイアウトを示す3つのタブと1つのアクティビティを持つアプリケーションを開発しました。合計で、私は3つの断片を持っています。別のタブをクリックするとフォアグラウンド以外のタブが作成される

多くのチュートリアルを勉強して使いました。 I三個の断片を有し、それぞれが行れるフラグメントに従って

return inflater.inflate(R.layout.tab_fragment_*, container, false);

* 1又は2又は3を有しています。

私はこの行にブレークポイントを置いていましたが、私は理解できない何かが起こっているのを見ました。

私はデバッグモードでtab1を選択すると、私のデバッガはtab2のフラグメントのコードをヒットします!!!! 次に、tab1のフラグメント内のコードをヒットし、正しい結果を表示します。私がtab2を選択すると、デバッガはtab3のフラグメントのコードをヒットします!!!!次に、正しい結果が表示されます。私がtab3を選択すると、私のデバッガはブレークポイントには当たらず正しい結果を示します。

お願いします。

私は正しいことを見ますが、私はそれを理解できません。この動作では、各タブ(この場合はフラグメント)のボタンをクリックしていくつかのアクションを追加することはできません。

私の参照の一つは次のとおりです。 http://www.truiton.com/2015/06/android-tabs-example-fragments-viewpager/

また、私は、Android 2.2 APIを使用していました。

+0

、ビューページャでタブを使用していますか、単にタブ? –

+0

私はビューポケットベルを使用しました – AKronis1369

答えて

0

デフォルトでは、ViewPagerは現在のページと、現在のページの左右にあるオフスクリーンページのみを作成します。

http://www.androidzeitgeist.com/2012/10/examining-viewpager-2.htmlを参照)

あなたはTAB1をクリック

は、fragment1が作成された(すぐにユーザーに表示する)ので、fragment2がある(任意の時点で、画面上にスクロールする準備ができなければ)。 tab2をクリックすると、fragment2はすでに存在し(前の手順を参照)、直ちに表示され、fragment3が作成されます(画面上でスクロールする準備ができています)。

set the offscreen page limitをゼロにしようとすると誘惑されるかもしれないので、(理論的には)各フラグメントは画面に表示されるときに作成されますが、機能しません。オフスクリーンページ制限をすることができ、最低はあなたがそれを選択した状態になる時にタブで何かをする必要がある場合は、あなたがこのような何かを試してみてください1.

です:

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
    @Override 
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

    } 

    @Override public void onPageSelected(int position) { 
    Fragment selectedFragment = fragments.get(position)); 
    //do something here 
    } 

    @Override public void onPageScrollStateChanged(int state) { 

    } 
}); 
関連する問題