0

にツールバー設定してください。スプラッシュ続くは、私が明らかにしようとしたが、助けにはならなかった質問の類似の多くがありますFragmentActivity

は私のアプリがviewPagerで活性を示す画面が表示されます。この活動には、viewPagerが含まれているので、FragmentContainerと呼ばれています。このFragmentContainerFragmentAcitityを拡張するので、今ちょうど、私は私のカスタムツールバーを設定するsetSupportActionBar()を使用することはできません。

<RelativeLayout> 

    <com.astuetz.PagerSlidingTabStrip 
     android:background="?attr/colorPrimary" 
     android:id="@+id/tabs" 
     android:layout_below="@id/toolbar_top_fc" 
     android:layout_height="?attr/actionBarSize" 
     android:layout_width="match_parent" 
     android:textColorPrimary="@android:color/white" 
     app:pstsIndicatorColor="@color/colorAccent" 
     app:pstsPaddingMiddle="true" 
     app:pstsTabPaddingLeftRight="24dp" /> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_below="@id/tabs" 
     android:layout_height="match_parent" 
     android:layout_width="match_parent"> 

</RelativeLayout> 

FragmentContanier.java

public class FragmentContainer extends FragmentActivity { 

    ViewPager viewPager = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.fragment_container); 

     viewPager = (ViewPager) findViewById(R.id.pager); 
     FragmentManager fragmentManager = getSupportFragmentManager(); 
     viewPager.setAdapter(new MyAdapter(fragmentManager)); 
     viewPager.setCurrentItem(1); 

     //Tabs 
     PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); 
     tabs.setViewPager(viewPager); 
    } 
} 

class MyAdapter extends FragmentPagerAdapter { 

    public MyAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     Fragment fragment = null; 
     if (position == 0) { 
      fragment = new FragmentEdit(); 
     } else if (position == 1) { 
      fragment = new FragmentMain(); 
     } else if (position == 2) { 
      fragment = new FragmentSavedMessages(); 
     } 
     return fragment; 
    } 

    @Override 
    public int getCount() { 
     return 3; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     CharSequence title = null; 
     if (0 == position) { 
      title = "Edit"; 
     } else if (1 == position) { 
      title = "Main"; 
     } else if (2 == position) { 
      title = "Save"; 
     } 
     return title; 
    } 
} 

私はこれにカスタムアクションバーを実装する助けが必要:

fragment_container.xmlはこのようなものです。見せてください。

すべてのヘルプは理解されるであろう。 編集を提案する自由を感じます。

+0

にフラグメントsethasoptionsmenu(true);のonCreateViewに設定されたあなたのフラグメントに応じて親アクティビティのツールバーをカスタマイズし、カスタムメニュー項目を膨らませることができます?また、 '' setSupportActionBar'''を呼び出す必要もなく、スタンドアロンのアクションバーを実装することもできます。アクティビティにアクションバーを追加する方法は2つあります。 – danypata

+0

@danypata viewPagerを実装することを学びながら、私はviewPagerを実装するためにFragmentActivityを拡張するように言われました。あなたのコメントを読んだ後、私はAppCompatActivityを試してみました。私はまだ新しいので、あまりにも多くのコマンドを持っていないでください –

答えて

1

あなたはフラグメント用に別のツールバーを持つことはできません。しかし、あなたはなぜあなたは `` `AppCompatActivity```(support.v7)を拡張しない

@Override 
public void onCreateOptionsMenu(
     Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.activity_itemdetail, menu); 
} 
+0

あなたは親の活動を見つけるのを助けてくれますか?ここに私はちょうどFragmentContainerを持っているので、それはツールバーを持っていません –

+0

私はこれを試しました。メニューは表示されません! –

+0

確かにそうですが、まずはdanypataのように、AppCompactActivityを拡張してsetSupportActionBarを設定するか、Xmlで追加するかのいずれかのレイアウトを展開します(やり方も同じです)。 Uフラグメントのために異なるメニュー項目を展開したい場合は、上記のコードを使用してください。 –

関連する問題