在drawerOption上添加片段Tabs时

时间:2015-01-16 09:14:08

标签: android android-fragments android-tabs android-actionbaractivity

我在MainActivity中有一个抽屉选项。您可以在哪里选择多个片段。

public class MainActivity extends ActionBarActivity {
private ListView drawerList;
private String[] drawerOptions;
private DrawerLayout drawerLayout;
private ActionBarDrawerToggle drawerToggle;
private Fragment[] fragments = new Fragment[]{
                                               new MainFragment(),
                                               new AcordesFragment(),
                                               new AfinadorFragment(),
                                               new AboutFragment(),
                                               new ExitFragment(),
};

我想祈祷选择一个Fragmet,它包含几个标签。 我的代码片段的来源如下:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;




public class AcordesFragment extends Fragment implements ActionBarActivity {


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ActionBar actionbar = getSupportActionBar();
    actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    ActionBar.TabListener tabListener = new ActionBar.TabListener() {
        @Override
        public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
            Toast.makeText(getApplicationContext(), tab.getText(),Toast.LENGTH_SHORT).show();
        }

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

        }

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

        }
    };

    for (int i = 0; i < 2; i++){
        actionbar.addTab(
                actionbar.newTab()
                        .setText("Tab" +i)
                        .setTabListener(tabListener)
        );
    }

}

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_acordes, container, false);
}


}

但它不起作用如下:public class AcordesFragment extends Fragment实现ActionBarActivity

非常感谢你的帮助。我学到了很多东西

1 个答案:

答案 0 :(得分:0)

man fragment无法实现ActionBarActivity。只有Activity才能实现ActionBarActivity。

如果您要在Fagment中添加标签,则必须使用TabSlidingTabLayout。 这是xml部分。          你必须下载这个库。

  1. Download The Zip
  2. developers.google.com/SlidingTabLayout