【问题标题】:How to add action bar如何添加操作栏
【发布时间】:2014-01-29 09:56:44
【问题描述】:

我想在我的活动之上添加操作栏。如何在以下布局中添加操作栏。 我想为低于 11 的 API 级别创建操作栏。谁能提供我的教程参考。

布局-

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/buddha"
    android:gravity="center"
    android:orientation="vertical"
    >
    <View
        android:id="@+id/top1"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:background="@null"
        android:gravity="center"
        android:layout_weight="5"
    />

    <Button
        android:id="@+id/hist"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:background="#73000000"
        android:gravity="center"
        android:textSize="@dimen/btxt"
        android:textColor="#FFFFFF"
        android:textStyle="bold"
        android:layout_weight="1"
        android:text="@string/his"
    />

    <View
        android:id="@+id/top2"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:background="@null"
        android:gravity="center"
        android:layout_weight=".10"
    />

    <Button
        android:id="@+id/typ"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:gravity="center"
        android:background="#73000000"
        android:textSize="@dimen/btxt"
        android:textStyle="bold"
        android:textColor="#FFFFFF"
        android:layout_weight="1"
        android:text="@string/typ"
    />

    <View
        android:id="@+id/top3"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:background="@null"
        android:gravity="center"
        android:layout_weight=".10"
    />

    <Button
        android:id="@+id/ben"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:gravity="center"
        android:layout_weight="1"
        android:textSize="@dimen/btxt"
        android:textColor="#FFFFFF"
        android:textStyle="bold"
        android:background="#73000000"
        android:text="@string/ben"
    />

    <View
        android:id="@+id/top4"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:background="@null"
        android:gravity="center"
        android:layout_weight=".10"
    />

    <Button
        android:id="@+id/exit"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:gravity="center"
        android:textSize="@dimen/btxt"
        android:textColor="#FFFFFF"
        android:textStyle="bold"
        android:background="#73000000"
        android:layout_weight="1"
        android:text="@string/exit"
    />

    <View
        android:id="@+id/top41"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:background="@null"
        android:gravity="center"
        android:layout_weight=".10"
    />

</LinearLayout>

【问题讨论】:

标签: android android-layout android-actionbar


【解决方案1】:

将您的项目设置为 appcompat v7 库以供参考,请参阅 http://developer.android.com/guide/topics/ui/actionbar.html#Adding

@Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ActionBar actionBar = getActionBar();
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME
        | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM);
  }

【讨论】:

【解决方案2】:

兼容性库支持在旧设备上运行的操作栏。这篇博文解释了如何使用它并提供了代码示例:http://android-developers.blogspot.co.uk/2013/08/actionbarcompat-and-io-2013-app-source.html

【讨论】:

【解决方案3】:

您需要在res/menu 文件夹中创建一个menu.xml 文件。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_refresh"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:icon="@drawable/ic_action_refresh"
        android:title="Refresh"/>
    <item
        android:id="@+id/action_settings"
        android:title="Settings">
    </item>

</menu> 

然后,您需要使用 MainActivity 类中的 onCreateOptionsMenu() 方法将其充气并添加到操作栏中。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
   MenuInflater inflater = getSupportMenuInflater();
   inflater.inflate(R.menu.menu, menu);
   return true;
} 

而且由于您想在 API 级别低于 11 的情况下使用操作栏,因此有两个流行的选项

  • 使用actionbarsherlock
  • 或来自 android 支持库的 ActionBarCompat 库(您可以在 android 开发者页面中找到)。

ActionBarSherlock 教程:Adding ActionBarSherlock to Your Project

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多