Autore Topic: Problema con actionbar appcompat v.21  (Letto 926 volte)

Offline Damien

  • Utente junior
  • **
  • Post: 63
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Lenovo ZUK Z1
  • Sistema operativo:
    Windows 10
Problema con actionbar appcompat v.21
« il: 26 Ottobre 2014, 17:44:20 CET »
0
Buonasera a tutti, da qualche giorno è stata rilasciata appcompat v20, che permette a device con versione di android inferiore della 5.0 Lollipop, di poter utilizzare alcuni elementi material design come dicono gli stessi sviluppatori:  AppCompat v21 — Material Design for Pre-Lollipop Devices! | Android Developers Blog

Nell'utilizzo di questa libreria però ho incontrato un problema, ovvero, ho aggiunto nelle dependencies: compile "com.android.support:appcompat-v7:21.0.+", negli style ho scritto: <style name="Theme.MyTheme" parent="Theme.AppCompat.Light"></style>, ma quando compilo non mi mostra nessuna action bar, cosa potrei aver sbagliato? Oppure è forse un bug in attesa di aggiornamento, visto che Lollipop in versione definitiva deve ancora essere rilasciato...
Se ti sono stato d'aiuto premi il tasto THANKS :)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema con actionbar appcompat v.21
« Risposta #1 il: 26 Ottobre 2014, 19:49:07 CET »
0
Domanda: quando dici che non ti visualizza nessuna ActionBar, stai parlando dell'anteprima dell'activity dentro AndroidStudio, oppure dell'app fatta girare nell'emulatore?

Perchè in un progettino vuoro creato al volo nel modo che descrivi, effettivamente nell'anteprima di AndroidStudio non si vede l'action bar, ma in esecuzione sull'emulatore c'è.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Damien

  • Utente junior
  • **
  • Post: 63
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Lenovo ZUK Z1
  • Sistema operativo:
    Windows 10
Re:Problema con actionbar appcompat v.21
« Risposta #2 il: 26 Ottobre 2014, 20:49:35 CET »
0
Domanda: quando dici che non ti visualizza nessuna ActionBar, stai parlando dell'anteprima dell'activity dentro AndroidStudio, oppure dell'app fatta girare nell'emulatore?

Perchè in un progettino vuoro creato al volo nel modo che descrivi, effettivamente nell'anteprima di AndroidStudio non si vede l'action bar, ma in esecuzione sull'emulatore c'è.

In entrambi, nell'anteprima non la mostra, ho provato ad avviarla sul mio device con android 4.1.2 ma non c'è comunque  :-\
Se ti sono stato d'aiuto premi il tasto THANKS :)

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Problema con actionbar appcompat v.21
« Risposta #3 il: 27 Ottobre 2014, 09:15:56 CET »
0
Hai aggiunto la Toolbar nel tuo layout?

Codice (XML): [Seleziona]
<android.support.v7.widget.Toolbar
   android:id=”@+id/my_awesome_toolbar”
   android:layout_height=”wrap_content”
   android:layout_width=”match_parent”
   android:minHeight=”?attr/actionBarSize”
   android:background=”?attr/colorPrimary” />

Codice (Java): [Seleziona]
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.blah);

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

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema con actionbar appcompat v.21
« Risposta #4 il: 27 Ottobre 2014, 10:43:01 CET »
0
Hai aggiunto la Toolbar nel tuo layout?

Gabriele, sicuramente mi sfugge qualcosa. Ma ho provato proprio ieri con un progetto vuoto trasformato come da istruzioni per usare il tema Theme.AppCompat e nell'emulatore l'actionbar viene mostrata anche senza mettere il widget Toolbar.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Problema con actionbar appcompat v.21
« Risposta #5 il: 27 Ottobre 2014, 11:06:23 CET »
0
Gabriele, sicuramente mi sfugge qualcosa. Ma ho provato proprio ieri con un progetto vuoto trasformato come da istruzioni per usare il tema Theme.AppCompat e nell'emulatore l'actionbar viene mostrata anche senza mettere il widget Toolbar.

Devo provarlo (mai usato senza Toolbar).
Sta usando un emulatore a 5.0 o 4.x ?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema con actionbar appcompat v.21
« Risposta #6 il: 27 Ottobre 2014, 11:33:01 CET »
+1
Devo provarlo (mai usato senza Toolbar).
Sta usando un emulatore a 5.0 o 4.x ?

Ho provato con un emulatore 4.4.2 e con un 5.0, e con entrambi vedo l'ActionBar.

C'è un dettaglio che non ho riportato: seguendo pedissequamente l'esempio del blog google-developer, l'activity l'ho fatta derivare dalla ActionBarActivity fornita dalla AppCompat e che dovrebbe essere quella che include la ActionBar (forse per questo non deve essere esplicitamente messa la ToolBar).

Comunque, dalle tue parole intuisco che, per impostare un'app retro-compatibile, forse sarebbe meglio usare l'Activity "normale" e mettere il widget Toolbar della AppCompat.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Damien

  • Utente junior
  • **
  • Post: 63
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Lenovo ZUK Z1
  • Sistema operativo:
    Windows 10
Re:Problema con actionbar appcompat v.21
« Risposta #7 il: 27 Ottobre 2014, 17:33:16 CET »
0
Grande @Bradipao, sempre bravissimo! Mi ero dimenticato di estendere con ActionBarActivity :(
Io toolbar non l'ho mai usato e con l'action bar (a parte per questa stupidata) non ho mai avuto problemi, sarebbe meglio usarla?

Già che ci sono vi chiedo un'altra cosa in un'altra app che sto provando a fare. Praticamente ad un certo punto mi ha cominciato a dare problemi con la classe R, ho provato a fare clean, make project, rebuild, ma niente ha funzionato, avevo letto in una domanda di stack overflow che bisognava disabilitare use external builds in compiler nelle impostazioni, purtroppo con gli ultimi aggiornamenti questa opzione è stata tolta, sapreste dirmi cosa potrei fare? Ah dimenticavo di dire che sto usando android studio, eclipse mi dava troppi troppi problemi :(

Post unito: 27 Ottobre 2014, 18:17:48 CET
Ok niente ho già risolto, praticamente sono passato con il puntatore del mouse dove mi dava errore, quando mi diceva di premere al+invio li ho premuti e ho risolto, non so esattamente cosa abbia fatto, ma so che funziona hahaha, grazie mille a tutti :)
« Ultima modifica: 27 Ottobre 2014, 18:17:48 CET da Damien, Reason: Merged DoublePost »
Se ti sono stato d'aiuto premi il tasto THANKS :)

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Problema con actionbar appcompat v.21
« Risposta #8 il: 29 Ottobre 2014, 08:59:07 CET »
0
Ho studiato (se ho tempo farò un tutorial...).

Con la nuova AppCompat21 si può usare

- ActionBar standard
- nuova Toolbar.

In entrambi i casi vanno utilizzati:

- ActionBarActivity
- AppCompat style.


L'ActionBar e la Toolbar, per quanto simili non sono la stessa cosa e hanno potenzialità diverse.
La Toolbar permette una flessibilità decisamente superiore (barre estese, perfetta integrazione con il navigationDrawer, possibilità di definire lo style direttamente nella View....) e a mio avviso per realizzare le nuove app andrebbe usata sempre questa.



Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Problema con actionbar appcompat v.21
« Risposta #9 il: 29 Ottobre 2014, 10:18:02 CET »
0
Una domanda: ho una activity e la toolbar. La toolbar funziona.

Quando però provo ad associare un tema alla toolbar non cambia il colore di sfondo.
La cosa buffa è che mi cambia il colore del testo a seconda del tema ma non il colore di sfondo.
Pensavo che il colore primario funzionasse, invece devo andarmelo a settare a mano come da XML presente qualche messaggio sopra.

Non sono esperto di stili e temi... c'è qualche motivo logico per il quale non funziona? Sto provando su emulatore JB.



Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Problema con actionbar appcompat v.21
« Risposta #10 il: 29 Ottobre 2014, 10:51:04 CET »
+2
Una domanda: ho una activity e la toolbar. La toolbar funziona.

Quando però provo ad associare un tema alla toolbar non cambia il colore di sfondo.
La cosa buffa è che mi cambia il colore del testo a seconda del tema ma non il colore di sfondo.
Pensavo che il colore primario funzionasse, invece devo andarmelo a settare a mano come da XML presente qualche messaggio sopra.

Non sono esperto di stili e temi... c'è qualche motivo logico per il quale non funziona? Sto provando su emulatore JB.

Un pò di complessità la aggiunge, ma non si deve confondere tema e style

style = locale alla Toolbar
theme = globale a tutto quello che viene inserito nella Toolbar



Es1:

Codice (XML): [Seleziona]
<android.support.v7.widget.Toolbar
   android:id="@+id/my_toolbar"
   android:layout_width="match_parent"
   android:layout_height="?attr/actionBarSize"
   style="@style/MyDarkToolbarStyle" />


<style="MyDarkToolbarStyle" parent="Widget.AppCompat.Toolbar">
    <item name="android:background">@color/green</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>

Es2:

Codice (XML): [Seleziona]
<android.support.v7.widget.Toolbar
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   style="@style/HeaderBar"
   app:theme="@style/ActionBarThemeOverlay"
   app:popupTheme="@style/ActionBarPopupThemeOverlay"/>

<style name="ActionBarThemeOverlay" parent="">
    <item name="android:textColorPrimary">#fff</item>
    <item name="colorControlNormal">#fff</item>
    <item name="colorControlHighlight">#3fff</item>
</style>

<style name="HeaderBar">
    <item name="android:background">?colorPrimary</item>
</style>

<style name="ActionBarPopupThemeOverlay" parent="ThemeOverlay.AppCompat.Light" >
    <item name="android:background">@android:color/white</item>
    <item name="android:textColor">#000</item>
</style>

Es3:

Codice (XML): [Seleziona]
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_my_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Problema con actionbar appcompat v.21
« Risposta #11 il: 29 Ottobre 2014, 12:00:48 CET »
0
Appena possibile provo, grazie mille!  :-)

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Problema con actionbar appcompat v.21
« Risposta #12 il: 30 Ottobre 2014, 19:38:50 CET »
0
Ho un'altra domanda, visto che il thread è taggato risolto se volete splittare....  ;-)

Sono ignorante in materia e dovrei studiare di più, però se io prendo come riferimento la documentazione del material design e il post del blog linkato più su io vedo che devo scegliere dei colori. Uno di questi è il colore primario e dovrebbe essere il colore di sfondo della toolbar.

Una volta che io ho fatto uno stile col colore primario, il colore accent, l'altro colore primario e i due text color.. pensavo (stupidamente, evidentemente) che settando lo style sulla toolbar il colore primario "funzionasse".

Invece mi sono trovato col testo che funzione e dagli esempi che gabmariopower ha fatto non setta alcun attributo colorprimary ma setta un colore colorprimary sull'attributo background.

Domanda: perché Google mi dice che il material design ha un colorPrimary e me lo indica sulla toolbar poi quando vado ad usare la toolbar non posso settare il colorPrimary su uno stile ma devo comunque usare l'attributo background?

Non so se mi sono spiegato.  :-)