Как избавиться дублирования кода в разных активити?
Можно решить эту проблему с помощью ViewStub:<ViewStub
    android:id="@+id/lazy_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
И в зависимости от Activity, инфлейтишь необходимый layout:ViewStub lazyLayout = (ViewStub) findViewById(R.id.lazy_layout);
lazyLayout.setLayoutResource(R.layout.main_activity_body); // Либо R.layout.second_activity_body
lazyLayout.inflate();
Создайте свой класс, унаследованный от DrawerLayout и реализуйте в нем необходимые параметры. А при построении файла представления используйте уже свой класс.