如何使活动在具有不同布局时扩展基本活动?

时间:2014-03-01 12:30:56

标签: android navigation-drawer

我正在构建一个Android应用程序,我希望所有的活动(屏幕)都有一个导航抽屉(其中包含除了标题之外的图标)这样做我发现它可以继承并且我尝试了很多解决方案在这里提供,但我无法解决困难的部分(处理不同的布局)

1 个答案:

答案 0 :(得分:1)

我必须做类似的事情,但我们使用的是片段,所以对我来说非常简单。它可能会对你有帮助。

您需要基本活动布局

// res/layout/activity_base.xml

<!-- parent layout -->
    <FrameLayout
        android:id="@+id/container"
    </FrameLayout>

<!-- drawer layout and other views -->

在包含抽屉布局的基本活动中处理抽屉布局的所有代码,并且还有一个设置片段的方法。

public class BaseActivity extends FragmentActivity{

  @Override
  protected void onCreate(Bundle savedInstance){
      setContentView(R.layout.activity_base.xml);

       // your rest of the code including drawer layout
  }

}


protected void setFragment(Fragment f){
    getSupportFragmentManager.beginTransaction()
         .replace(R.id.container,f)
         .commit()
}

对于想要具有drawerlayout的其他活动,只需扩展BaseActivity并使用setFragment设置片段。关键是FooActivity没有自己的活动布局,它使用BaseActivity布局并放置自己的片段。

public class FooActivity extends BaseActivity{

         @Override
      protected void onCreate(Bundle 
          setFragment(FooFragment.newInstance());
      }

}