如何在多个活动之间共享导航抽屉?

时间:2016-04-19 10:56:08

标签: java android android-activity android-navigation

您好,我正在为我的高中毕业做一个学校项目。该项目包含一个Android应用程序,它具有MainActivity导航抽屉。 现在,我已经学会了数千个关于这个论点的问题,但所有答案都是关于使用片段的。我不想使用片段,那么如何在不同的活动之间共享导航抽屉?

注意:1)我使用了Android Studio提供的导航抽屉。

2)我不想分享MainActivity的工具栏,只想分享导航抽屉。

感谢。

1 个答案:

答案 0 :(得分:0)

您需要使用Drawer创建BaseActivity,并且所有子活动都将扩展为BaseActivity

public class BaseActivity extends AppCompatActivity  {    
    @Override
    public void setContentView(int layoutResID) {
        super.setContentView(R.layout.activity_base);
        // Base activity view with navigation drawer

        mainContener = (RelativeLayout) findViewById(R.id.mainContener);
        // MainCOntener where you want to add your child activity view
        // with toolbar and all
        getLayoutInflater().inflate(layoutResID, mainLayout);


        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);


        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setOnClickListener(this);

        findViewById(R.id.linearLayout_home).setOnClickListener(this);
        ...
        ...

        getDrawerData();
    }

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

    }


  }

并创建像这样的儿童活动

public class Home extends BaseActivity {


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

每次setContentView(); 从子活动中调用该视图(或像R.layout.home这样的布局)将在baseactivity的竞争者(如R.layout.base_activity)的ViewGroup中膨胀

了解更多信息 您可以使用Google-IO应用程序代码,他们也使用BaseActivity Concept https://github.com/google/iosched