在活动顶部添加按钮

时间:2017-12-26 17:48:06

标签: android android-layout button

我想在活动布局的顶部添加一些按钮(在图片中标记),但无法找到如何执行此操作。我应该搜索哪些短语?

enter image description here

3 个答案:

答案 0 :(得分:2)

出现在那里的按钮(文字和图标)都是名为选项菜单的项目。用于创建选项菜单的开发人员指南位于:https://developer.android.com/guide/topics/ui/menus.html#options-menu

答案 1 :(得分:1)

您需要从活动中删除操作栏。您可以为活动设置NoActionBar主题。在你的布局xml中,你可以添加工具栏,其中包括如下代码的按钮。

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#131313"
    android:minHeight="?attr/actionBarSize">

    <LinearLayout
        android:layout_width="wrap_content"
        android:background="#00aaaaaa"
        android:layout_gravity="right"
        android:layout_height="match_parent">

        <Button
            android:text="Delete"
            android:layout_width="wrap_content"
            android:background="#000"
            android:textColor="#fff"
            android:layout_height="wrap_content"
            android:textSize="16dp" />

    </LinearLayout>

</android.support.v7.widget.Toolbar>

在onCreate()函数中,您可以添加以下代码:

Toolbar topToolBar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(topToolBar);
ActionBar actionBar = getSupportActionBar();;
actionBar.setDisplayHomeAsUpEnabled(true);

答案 2 :(得分:1)

正如Ben P所说,那叫做菜单。

您需要使用选项创建XML,并在活动中呈现XML。

示例,让我们调用这个menu_test.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity" >
    <item android:id="@+id/action_download"
       android:title="@string/download_information"
       android:orderInCategory="100"
       android:icon="@drawable/ic_file_download_white_24dp"
       app:showAsAction="always" />
</menu>

正如您在指南中看到的那样,如果有一个图标,showAsAction将显示图标,如果没有,则显示标题。如果删除该行,则将其添加到三点按钮。

现在进入活动

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_test, menu);
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.action_download) {
        //YOUR METHOD HERE
        return true;
    }
    return super.onOptionsItemSelected(item);
}

希望它有所帮助。