【问题标题】:When adding a fragment Tabs on drawerOption在drawerOption上添加片段选项卡时
【发布时间】:2015-01-16 09:14:08
【问题描述】:

我的 MainActivity 中有一个抽屉选项。您可以在其中选择多个 Fragment。

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 implements ActionBarActivity

非常感谢您的帮助。我学到了很多

【问题讨论】:

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


    【解决方案1】:

    man片段不能实现ActionBarActivity。只有Activity可以实现ActionBarActivity。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多