簡體   English   中英

如何在操作欄選項卡上單擊添加片段

[英]How to add fragment on click on Action Bar Tab

我正在為我的Android應用程序使用AppCompat庫。 我想補充一點,我已經做了,現在我不能上單擊添加片段操作欄標簽ActionBar Tabs 在下面的代碼中,我有兩個選項卡,單擊它們即可為片段充氣

任何想法嗎?

MainActivity.java

public class MainActivity extends ActionBarActivity implements ActionBar.TabListener {

    private SearchView mSearchView;
    private ActionBar mActionBar;
    private Fragment mFragment;

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

        mActionBar = getSupportActionBar();
        mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        // create first tab
        ActionBar.Tab tab = mActionBar.newTab().setText("Free apps")
                .setTabListener(this);
        mActionBar.addTab(tab);

        // create second tab
        tab = mActionBar.newTab().setText("Paid apps")
                .setTabListener(this);
        mActionBar.addTab(tab);

    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);

        MenuItem searchItem = menu.findItem(R.id.action_bar_search);
        mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_bar_search:
                mSearchView.setIconified(false);
                return true;
        }
        return false;
    }

    @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
        if (tab.getPosition() == 0) {
            // first tab

        } else {
            // second tab
        }
    }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {

    }

    @Override
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {

    }
}

首先, 將此TabListener導入到您的項目中,而不是在Activity中實現ActionBar.TabListener 然后在布局activity_main確保您有一個像這樣的片段容器

<LinearLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

然后很容易,將標簽添加到操作欄,如下所示:

Tab tab1 = actionBar
        .newTab()
        ...
        .setTabListener(new SupportFragmentTabListener<CustomFragment>(R.id.container, this,
                    "first", CustomFragment.class));

如果您想了解更多信息,即如何設置標簽樣式,請點擊此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM