rojo - getsupportactionbar android studio
¿Cuál es la mejora de AppCompatActivity sobre ActionBarActivity? (6)
android.support.v7.app.AppCompatActivity
se agregó ayer a la última biblioteca de soporte v7 como una nueva característica.
Se dice que
ActionBarActivity
ha quedado en desuso a favor de la nueva
AppCompatActivity
y que
AppCompatActivity
es la clase base para actividades que utilizan las funciones de la barra de acciones de la biblioteca de soporte.
Entonces, ¿cuáles son las nuevas características de
AppCompatActivity
sobre
ActionBarActivity
?
¿Qué mejoras tiene
AppCompatActivity
sobre
ActionBarActivity
?
¿Y cuáles son las ventajas de
AppCompatActivity
?
¿Podría alguien suministrar algunas muestras?
Cualquier consejo es apreciado. Y gracias de antemano.
PD: lo que más me sorprendió es que
AppCompatActivity
que se extiende desde
android.support.v4.app.FragmentActivity
es la clase principal directa de
ActionBarActivity
.
Quiero decir, en realidad ahora que
ActionBarActivity
puede hacer cualquier cosa que
AppCompatActivity
pueda hacer, ¿por qué Android
AppCompatActivity
lo último?
Mientras tanto, vi una publicación de blog que dice: "
No es un cambio de nombre de
ActionBarActivity
a
AppCompatActivity
, la lógica interna de
AppCompat
está disponible a través de
AppCompatDelegate
", entonces, ¿cuál es la "
lógica interna
" de
AppCompat
?
¿Qué puede hacer
AppCompatDelegate
?
¿Alguien podría publicar algunos códigos sobre esto?
La biblioteca de soporte de AppCompat comenzó con principios humildes pero importantes: una única barra de acción consistente para todos los dispositivos API 7 y superiores. En la revisión 21, asumió una nueva responsabilidad : llevar paleta de colores de materiales, tintado de widgets, soporte de barra de herramientas y más a todos los dispositivos API 7+. Con eso, el nombre ActionBarActivity realmente no cubrió el alcance completo de lo que realmente hizo .
http://android-developers.blogspot.it/2015/04/android-support-library-221.html
Anteriormente, el único punto de entrada a
AppCompat
era a través de la clase
ActionBarActivity
ahora en desuso.
Desafortunadamente, esto te obligó a usar una jerarquía de actividad establecida que hizo que cosas como usar
PreferenceActivity
imposibles.
Para más información, consulte las bibliotecas de support-libraries-v22-1-0 Chris Banes support-libraries-v22-1-0
Como escribió Chris, la nueva versión obsoleta de
ActionBarActivity
(la que extiende la clase
AppCompatActivity
) es una clase de compatibilidad con versiones anteriores segura para usar.
Su desaprobación es solo una pista para que solicite utilizar directamente la nueva
AppCompatActivity
.
AppCompatActivity
es una implementación nueva y más genérica que utiliza la clase
AppCompatDelegate
internamente.
Si comienza un nuevo desarrollo, debería usar la nueva clase
AppCompatActivity
inmediato.
Si tiene la oportunidad de actualizar su aplicación, reemplace también
ActionBarActivity
desuso por la nueva actividad.
De lo contrario, puede permanecer con actividades obsoletas y no habrá ninguna diferencia en el comportamiento.
Con respecto a
AppCompatDelegate
, le permite tener nuevos widgets tintados en una actividad, que no es
AppCompatActivity
ni
ActionBarActivity
.
Por ejemplo, hereda una actividad de una biblioteca externa, que, a su vez,
no
hereda de
AppCompatActivity
pero desea que esta actividad tenga widgets (vistas) de materiales tintados.
Para que esto suceda, debe crear una instancia de
AppCompatDelegate
dentro de su actividad, anular métodos de esa actividad como
addContentView()
,
setContentView()
etc. (consulte
AppCompatDelegate
javadoc para obtener la lista completa de métodos), y dentro de esos métodos anulados las llamadas a la instancia interna de
AppCompatDelegate
.
AppCompatDelegate
hará el resto y su actividad "antigua" se "materializará".
Es principalmente un cambio de nombre:
ActionBarActivity
realmente no describe todo lo que hace ahora.
Puede utilizar de forma segura
ActionBarActivity
si lo desea.
Piense en ello como un enlace simbólico.
La última versión de la biblioteca de soporte de Android, 22.1, desprecia la
ActionBarActivity
a favor de
AppCompatActivity
, que promete traer una única
ActionBar
consistente para todos los dispositivos que comiencen con API Nivel 7 y superior
AppCompatActivity
se introdujo en
Android-SDK
desde el lanzamiento de la
biblioteca de compatibilidad de aplicaciones
de
Android
.
AppCompatActivity
es la clase secundaria directa de
FragmentActivity
de soporte v4 y la clase primaria directa de
ActionBarActivity
.
AppCompatActivity
es la clase base para actividades que utilizan las funciones de la
barra de acciones de la biblioteca de soporte
.
Puede agregar una
ActionBar
de
ActionBar
a su actividad cuando se ejecuta en el
nivel API 7 o superior
extendiendo esta clase para su actividad y configurando el tema de la actividad en
Theme.AppCompat
o un tema similar.
En cuanto a la biblioteca de compatibilidad de aplicaciones v7, agrega compatibilidad con el patrón de diseño de la interfaz de usuario de la Barra de acciones . Esta biblioteca incluye soporte para implementaciones de interfaz de usuario de diseño de materiales .
Estas son algunas de las clases clave incluidas en la biblioteca v7 appcompat:
-
ActionBar
: proporciona una implementación del patrón de interfaz de usuario de la barra de acción. -
AppCompatActivity
: agrega una clase de actividad de aplicación que se puede usar como clase base para actividades que usan la implementación de la barra de acción de la Biblioteca de soporte . -
AppCompatDialog
: agrega una clase de diálogo que se puede usar como clase base para los diálogos temáticos de AppCompat . -
ShareActionProvider
: agrega soporte para una acción de compartir estandarizada (como correo electrónico o publicación en aplicaciones sociales) que se puede incluir en una barra de acción.
Después de descargar las Bibliotecas de soporte de Android , esta biblioteca se encuentra en el directorio / extras / android / support / v7 / appcompat / .