导航栏对所有活动都是通用的

时间:2011-06-09 12:16:50

标签: android

我一直在寻找有关如何将导航栏置于所有活动中的选项。仍然无法弄清楚这样做的最佳方式。导航栏应具有屏幕标题和后退按钮。或者在一些活动中可能是两个 我应该遵循的最佳做法是什么?

由于

2 个答案:

答案 0 :(得分:2)

我的一位朋友创建了一个名为Android Actionbar的开源项目,听起来好像你想做那个项目所做的事情。这是一个图书馆项目,因此您可以在您的应用程序中使用它。该网站还有一些例子。

这就是它的样子:

enter image description here

答案 1 :(得分:1)

您可以在单独的header.xml布局中定义导航栏,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/header_layout"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical">

  <!-- 1px border top -->
  <ImageView
    android:layout_width="fill_parent"
    android:layout_height="1px"
    android:background="@color/header_border_top" />

  <!-- header with text and buttons -->
  <RelativeLayout
    android:layout_height="43dp"
    android:layout_width="fill_parent"
    android:background="@color/header_background">

    <!-- left side -->
    <LinearLayout
      android:id="@+id/header_home_button_layout"
      android:layout_width="wrap_content"
      android:layout_height="fill_parent"
      android:orientation="horizontal"
      android:layout_alignParentLeft="true">

      <!-- home button -->
      <ImageButton
        android:id="@+id/header_home_button"
        android:src="@drawable/header_btn_home"
        android:onClick="onHomeClick" />

    </LinearLayout>

    <!-- header text -->
    <TextView
      android:id="@+id/header_title"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerInParent="true"
      android:text="@string/app_name"
      android:textSize="20dp"
      android:textStyle="bold"/>

    <!-- right side -->
    <LinearLayout
      android:layout_width="wrap_content"
      android:layout_height="fill_parent"
      android:orientation="horizontal"
      android:layout_alignParentRight="true">

      <!-- back button -->
      <ImageButton
        android:id="@+id/header_back_button"
        android:src="@drawable/header_btn_back"
        android:onClick="onBackClick"
        android:visibility="gone" />

    </LinearLayout>

  </RelativeLayout>

  <!-- 1px border bottom -->
  <ImageView
    android:layout_width="fill_parent"
    android:layout_height="1px"
    android:background="@color/header_border_bottom" />

</LinearLayout>

然后在所有活动的布局中包含此标题:

<include
    layout="@layout/header" />

并确保所有类都扩展具有onHomeClick和onBackClick方法的父类...