Создание кнопки в панели инструментов Android

Как я могу создать кнопку на Toolbar Android, которая похожа на этот пример iOS ?

Пример iOS

ToolBar с учебником по кнопке

1 – Добавить библиотеку совместимости внутри build.gradle

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' } 

2 – Создайте имя файла color.xml чтобы определить цвета Toolbar

   #FF5722 #E64A19  

3 – Измените файл style.xml

     

4 – Создайте xml-файл, например tool_bar.xml

   

5 – Включите Toolbar в свой main_activity.xml

     

6 – Затем поместите его в свой class MainActivity

 package com.example.hp1.materialtoolbar; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.widget.Toast; /* When using AppCompat support library * (you need to extend Main Activity to * ActionBarActivity) * ActionBarActivity has deprecated, use AppCompatActivity */ public class MainActivity extends ActionBarActivity { // Declaring the Toolbar Object private Toolbar toolbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); // Attaching the layout to the toolbar object toolbar = (Toolbar) findViewById(R.id.tool_bar); // Setting toolbar as the ActionBar with setSupportActionBar() call setSupportActionBar(toolbar); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } 

7 – И, наконец, добавьте свои «Элементы кнопки» в menu_main.xml внутри /res/menu/ directory

       

Настройка панели инструментов может осуществляться следующими способами

кнопку записи и textViews внутри панели инструментов, как показано ниже

    

Другой способ – использовать меню элементов, как показано ниже.

 @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } 

Я добавил текст в ToolBar:

menu_skip.xml

    

MainActivity.java

 @Override boolean onCreateOptionsMenu(Menu menu) { inflater = getMenuInflater(); inflater.inflate(R.menu.menu_otp_skip, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // action with ID action_refresh was selected case R.id.menu_item_skip: Toast.makeText(this, "Skip selected", Toast.LENGTH_SHORT) .show(); break; default: break; } return true; } 

Другая возможность – установить в вашем app:actionViewClass атрибут app:actionViewClass :

    

В вашем коде вы можете получить доступ к этой кнопке после того, как меню было завышено:

 public boolean onCreateOptionsMenu(Menu menu) { MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.sample, menu); MenuItem getItem = menu.findItem(R.id.get_item); if (getItem != null) { AppCompatButton button = (AppCompatButton) getItem.getActionView(); //Set a ClickListener, the text, //the background color or something like that } return super.onCreateOptionsMenu(menu); } 

Они называются элементами меню или кнопками действий на панели инструментов / панели действий. Здесь у вас есть учебник Google, как он работает и как его добавить. https://developer.android.com/training/basics/actionbar/adding-buttons.html

Вы можете на самом деле положить что-нибудь внутри панели инструментов. См. Приведенный ниже код.

   

Между указанным тегом панели инструментов вы можете положить почти что угодно. Это преимущество использования панели инструментов.

Источник: пример панели инструментов Android

Вы можете использовать actionLayout из библиотеки поддержки.

menu.xml

     

button_layout.xml

     

Activity.java

 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu, menu); MenuItem item = menu.findItem(R.id.button_item); Button btn = item.getActionView().findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this, "Toolbar Button Clicked!", Toast.LENGTH_SHORT).show(); } }); return true; } 
  • Эта активность уже имеет панель действий, предоставляемую декором windows
  • Панель инструментов Android Добавление элементов меню для разных fragmentов
  • На панели инструментов нет тени по умолчанию?
  • Как изменить значки меню навигации и переполнения панели инструментов (appcompat v7)?
  • CollapsingToolbarLayout setTitle () не обновляется, если не свернут
  • Изменение цвета строки состояния с помощью AppCompat ActionBarActivity
  • Изменить цвет панели инструментов в Appcompat 21
  • Давайте будем гением компьютера.