Tutorial de barra de herramientas con botón
1 - Agregue compatibilidad de biblioteca dentro build.gradle
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
}
2 - Crea un nombre de archivo color.xml
para definir los Toolbar
colores
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ColorPrimary">#FF5722</color>
<color name="ColorPrimaryDark">#E64A19</color>
</resources>
3 - Modifica tu style.xml
archivo
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/ColorPrimary</item>
<item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
<!-- Customize your theme here. -->
</style>
</resources>
4 - Crea un archivo xml como tool_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:elevation="4dp" />
5 - Incluya el Toolbar
en sumain_activity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<include
android:id="@+id/tool_bar"
layout="@layout/tool_bar" />
<TextView
android:layout_below="@+id/tool_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/TextDimTop"
android:text="@string/hello_world" />
</RelativeLayout>
6 - Luego, ponlo dentro de tu MainActivity
clase
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 - Y finalmente, agregue sus "Elementos de botón" al menu_main.xml
interior del /res/menu/
directorio
<?xml version="1.0" encoding="utf-8"?>
<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_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never" />
<item
android:id="@+id/action_search"
android:orderInCategory="200"
android:title="Search"
android:icon="@drawable/ic_search"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/action_user"
android:orderInCategory="300"
android:title="User"
android:icon="@drawable/ic_user"
app:showAsAction="ifRoom" />
</menu>
item
en la barra de herramientas ... hay una diferencia entre el botón y el elemento: PLa personalización de la barra de herramientas se puede realizar de las siguientes formas
botón de escritura y código de textViews dentro de la barra de herramientas como se muestra a continuación
Otra forma es usar el menú de elementos como se muestra a continuación
fuente
layout_gravity
atributo no está disponibleRelativeLayout
(establecer el ancho enmatch_parent
) y aplicarlayout_alignParentEnd="true"
.match_parent
, elimina el título de la barra de herramientas.Otra posibilidad es configurar el
app:actionViewClass
atributo en su menú:En su código, puede acceder a este botón después de inflar el menú:
fuente
He agregado texto en ToolBar:
menu_skip.xml
MainActivity.java
fuente
Se denominan elementos de menú o botones de acción en la barra de herramientas / barra de acciones. Aquí tienes el tutorial de Google sobre cómo funciona y cómo agregarlos https://developer.android.com/training/basics/actionbar/adding-buttons.html
fuente
De hecho, puedes poner cualquier cosa dentro de una barra de herramientas. Consulte el siguiente código.
Entre la etiqueta de la barra de herramientas anterior puede poner casi cualquier cosa. Ese es el beneficio de usar una barra de herramientas.
Fuente: Ejemplo de barra de herramientas de Android
fuente
Puede utilizar
actionLayout
de la biblioteca de soporte.menu.xml
button_layout.xml
Activity.java
fuente
Pude lograr eso envolviendo
Button
conConstraintLayout
:Puede crear un recurso dibujable
button_publish_rounded
, definir las propiedades del botón y asignar este archivo a laandroid:background
propiedad del botón :fuente