Вы можете распространять стандартные действия (Activity, ListActivity и т. Д., Если вы используете какие-либо другие), и использовать их в качестве базы для включения nav_bar.
Например:
Определить макет с Nabar как этот
<LinearLayout
...
android:orientation="vertical"
>
<YourNavBarComponent
...
/>
<FrameLayout
android:id="@+id/nav_content"
...
>
// Leave this empty for activity content
</FrameLayout>
</LinearLayout>
Это будет ваша база макет содержит все другие макеты в nav_content кадре. Далее, в создании базового класса активности, и выполните следующие действия:
public abstract class NavActivity extends Activity {
protected LinearLayout fullLayout;
protected FrameLayout navContent;
@Override
public void setContentView(final int layoutResID) {
fullLayout= (LinearLayout) getLayoutInflater().inflate(R.layout.nav_layout, null); // Your base layout here
navContent= (FrameLayout) fullLayout.findViewById(R.id.nav_content);
getLayoutInflater().inflate(layoutResID, navContent, true); // Setting the content of layout your provided in the nav_content frame
setContentView(fullLayout);
// here you can get your navigation buttons and define how they should behave and what must they do, so you won't be needing to repeat it in every activity class
}
}
И теперь, когда вы создаете новый вид деятельности, в котором Вы нуждаетесь в навигационной панели, просто расширить NavActivity вместо этого. И ваш навигационный бар будет размещен там, где он вам нужен, не повторяя его в каждом макете снова и снова и не загрязняя макеты (не говоря уже о повторении кода для управления навигацией в каждом классе активности).
Вы имеете в виду, что мне нужно написать один и тот же макет в каждом макете, или я должен использовать тег? –
madcoderz
Используйте тег include, чтобы включить панель навигации. Обновит мой ответ, чтобы сделать его более понятным. –