简体   繁体   English

如何在操作栏选项卡上单击添加片段

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

I am using the AppCompat library for my android app. 我正在为我的Android应用程序使用AppCompat库。 I am trying to add Action Bar Tab that I have done now I could not add the fragment on click on ActionBar Tabs . 我想补充一点,我已经做了,现在我不能上单击添加片段操作栏标签ActionBar Tabs Here in below code, there I have two tabs on click on them I want to inflate the fragment 在下面的代码中,我有两个选项卡,单击它们即可为片段充气

Any idea for this ?? 任何想法吗?

MainActivity.java 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) {

    }
}

First, import this TabListener to your project instead of implementing ActionBar.TabListener in your Activity. 首先, 将此TabListener导入到您的项目中,而不是在Activity中实现ActionBar.TabListener Then in your layout activity_main make sure you have a fragment container like so 然后在布局activity_main确保您有一个像这样的片段容器

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

Then it's easy, add tabs to your actionbar like this: 然后很容易,将标签添加到操作栏,如下所示:

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

If you want to learn more, ie how to style your tabs check here 如果您想了解更多信息,即如何设置标签样式,请点击此处

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM