studio example dinamico desplegable bar appbarlayout android android-studio android-actionbar material-design toolbar

example - La barra de herramientas setSupportActionBar no se puede aplicar al error(android.widget.Toolbar)



toolbar material design android (10)

Agregar importación android.support.v7.widget.Toolbar a la lista de importación resuelve este problema.

Luego agregue el archivo de diseño del widget de la barra de herramientas:

<android.support.v7.widget.Toolbar android:id="@+id/list_toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:minHeight="?attr/actionBarSize" android:theme="?attr/actionBarTheme" />

En el método onCreate de código java

//call to

Tootbar toolbar = findViewById (R.id.toolbar); setSupportActionBar (barra de herramientas);

Fuente: https://developer.android.com/training/appbar/up-action

He estado buscando una respuesta y he intentado muchas soluciones posibles, pero nada parece funcionar ...

Estoy intentando configurar una barra de acción material siguiendo este tutorial .

Aquí está mi código:

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"> </android.support.v7.widget.Toolbar>

actividad.xml:

<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFF"> <!-- The main content view --> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <include android:id="@+id/app_bar" layout="@layout/tool_bar" /> </RelativeLayout> <!-- Navigation Drawer --> <ListView android:id="@+id/left_drawer" android:layout_width="220dp" android:layout_height="match_parent" android:layout_gravity="left" android:background="#1C1C1C" android:divider="@android:color/darker_gray" android:dividerHeight="1dp" /> </android.support.v4.widget.DrawerLayout>

Y finalmente mi actividad.java:

import android.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toolbar; public class rutaActivity extends ActionBarActivity { private Toolbar toolbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ruta); getSupportActionBar().hide();//Ocultar ActivityBar anterior toolbar = (Toolbar) findViewById(R.id.app_bar); setSupportActionBar(toolbar); //HERE''S THE PROBLEM !!!!

Error:

setSupporActionBar (android.support.v7.widget.Toolbar) en ActionBarActivity no se puede aplicar a (android.widget.Toolbar)

¿Cómo puedo arreglar esto?


Al usar la barra de herramientas, debe extender AppCompatActivity y luego importar android.support.v7.widget.Toolbar


Certifique que su declaración de manifiesto incluye la etiqueta android: theme = "@ style / AppTheme.NoActionBar" , como la siguiente:

<activity android:name=".PointsScreen" android:theme="@style/AppTheme.NoActionBar"> </activity>


Con la adición de androidx en Studio 3.0+, la compatibilidad de la barra de herramientas ahora se encuentra en una nueva biblioteca, accesible de este modo

import androidx.appcompat.widget.Toolbar


En Usted MainActivity.java importar android .support.v7.widget.Toolbar insertar del programa java


En su Activity.java importe android.support.v7.widget.Toolbar lugar de android.widget.Toolbar :

import android.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.support.v7.widget.Toolbar; public class rutaActivity extends AppCompactActivity { private Toolbar toolbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ruta); getSupportActionBar().hide();//Ocultar ActivityBar anterior toolbar = (Toolbar) findViewById(R.id.app_bar); setSupportActionBar(toolbar); //NO PROBLEM !!!!


Estoy teniendo el mismo problema. Mi Logcat dice

java.lang.IllegalStateException: esta actividad ya tiene una barra de acción provista por la decoración de la ventana

Ya tengo una barra de acción, así que cuando uso setSupportActionBar(toolbar); Mi aplicación recibe un error por este conflicto. Para solucionar este problema, agregue NoActionBar en su archivo de recursos de estilo de tema de aplicación.

Cambia esto

<style name="ParentMaterialTheme" parent="Theme.AppCompat.Light">

A esto

<style name="ParentMaterialTheme" parent="Theme.AppCompat.Light.NoActionBar">


Para agregar una barra de herramientas que admita Material Design, las instrucciones oficiales de la documentación son probablemente las mejores a seguir.

  1. Agregue la biblioteca de soporte v7 appcompat .
  2. Haz que tu actividad extienda AppCompatActivity .

    public class MyActivity extends AppCompatActivity { // ... }

  3. NoActionBar en el Manifiesto.

    <application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />

  4. Añade una barra de herramientas al diseño xml de tu actividad.

    <android.support.v7.widget.Toolbar android:id="@+id/my_toolbar" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" ... />

  5. Llame a setSupportActionBar en setSupportActionBar de la actividad.

    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar); }

Nota: Deberás importar lo siguiente en la actividad.

import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar;


Yo estaba usando previamente este código:

Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar);

y extendí AppCompatActivity también pero estaba recibiendo el mismo error. Así que en lugar de usar la clase de la barra de herramientas , importé la siguiente clase y funcionó para mí:

android.support.v7.widget.Toolbar


importar android.support.v7.widget.Toolbar; importalo a tu clase java