Создание кнопки в панели инструментов Android
Как я могу создать кнопку на Toolbar
Android, которая похожа на этот пример iOS
?
- Добавить высоту / тень на панели инструментов для устройств с предварительным леоптипом
- Название центра панели инструментов Android и собственный шрифт
- Удалите большое дополнение после значка гамбургера (меню) на панели инструментов Android?
- Android Lollipop, добавить всплывающее меню из заголовка на панели инструментов
- Как использовать TabLayout с панелью инструментов внутри CollapsingToolbarLayout?
- Создание экрана предпочтений с поддержкой (v21) Панели инструментов
- Панель инструментов lollipop для Android: как скрыть / показать панель инструментов при прокрутке?
- Прокладка панели инструментов Android API 21
- Управление навигационной панелью и обратной кнопкой панели инструментов из fragmentа в андроиде
- Равномерно разнесенные пункты меню на Панели инструментов
- Как сделать панель инструментов прозрачной?
- Как использовать SearchView в панели инструментов Android
- Добавить представления ниже панели инструментов в CoordinatorLayout
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; }