android.support.v7.app.AppCompatActivity
fue agregado a la última biblioteca de soporte v7 como una nueva característica ayer.
Se dice que ActionBarActivity
ha quedado en desuso en favor de lo nuevo AppCompatActivity
y que AppCompatActivity
es una 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
Over ActionBarActivity
? ¿Qué mejoras AppCompatActivity
tienen más ActionBarActivity
? ¿Y cuáles son las ventajas de AppCompatActivity
? ¿Alguien podría suministrar algunas muestras?
Cualquier consejo es apreciado. Y gracias de antemano.
PD: lo que más me sorprendió es que lo AppCompatActivity
que se extiende android.support.v4.app.FragmentActivity
es la clase directa de padres ActionBarActivity
. Quiero decir, en realidad ahora que ActionBarActivity
puede hacer cualquier cosa que AppCompatActivity
pueda hacer, ¿por qué Android eliminó 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 deAppCompatDelegate
", entonces, ¿cuál es la " lógica interna " AppCompat
? Que puede AppCompatDelegate
hacer ¿Alguien podría publicar algunos códigos sobre esto?
Respuestas:
Como Chris escribió, la nueva versión obsoleta de
ActionBarActivity
(laAppCompatActivity
clase que se extiende ) es una clase de compatibilidad con versiones anteriores segura para usar. Su desaprobación es solo una pista para que solicites usar newAppCompatActivity
directamente en su lugar.AppCompatActivity
es una implementación nueva y más genérica que usaAppCompatDelegate
clase internamente.Si comienza un nuevo desarrollo, entonces debería usar una nueva
AppCompatActivity
clase de inmediato. Si tiene la oportunidad de actualizar su aplicación, también reemplace en desusoActionBarActivity
por la nueva actividad. De lo contrario, puede permanecer con actividades obsoletas y no habrá ninguna diferencia en el comportamiento.En cuanto a esto
AppCompatDelegate
, le permite tener nuevos widgets tintados en una actividad, que no es niAppCompatActivity
tampocoActionBarActivity
.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 instanciaAppCompatDelegate
dentro de su actividad, anular los métodos de esa actividad comoaddContentView()
,setContentView()
etc. (consulteAppCompatDelegate
javadoc para obtener la lista completa de métodos), y dentro de esos métodos anulados, reenviar las llamadas a laAppCompatDelegate
instancia interna .AppCompatDelegate
hará el resto y su actividad "antigua" se "materializará".fuente
Es principalmente un cambio de nombre: en
ActionBarActivity
realidad no describe todo lo que hace ahora. Puede usarlo con seguridadActionBarActivity
si lo desea. Piense en ello como un enlace simbólico.fuente
AppCompatActivity
es la clase principal directa deActionBarActivity
, ahora queActionBarActivity
puede hacer cualquier cosa queAppCompatActivity
pueda hacer, ¿por quéAndroid
rechazar la posterior?ActionBarActivity
cuando se descarta de la biblioteca de soporte (por ejemplo, al actualizar su aplicación), recomendaría evitar usarla de ahora en adelante.http://android-developers.blogspot.it/2015/04/android-support-library-221.html
fuente
AppCompatActivity
se introdujo en Android-SDK desde el lanzamiento de la biblioteca de compatibilidad de aplicaciones de Android .AppCompatActivity
es la clase secundaria directaFragmentActivity
de soporte v4 y la clase primaria directa deActionBarActivity
.AppCompatActivity
es la clase base para actividades que utilizan las funciones de la barra de acción de la biblioteca de soporte .Puede agregar un elemento
ActionBar
a su actividad cuando se ejecuta en el nivel de 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 / .
fuente
android.support.v4.app.ActivityCompat
? ¿Es este el antiguo nombre deAppCompatActivity
?Anteriormente, el único punto de entrada
AppCompat
era a través de laActionBarActivity
clase ahora en desuso . Desafortunadamente, esto te obligó a usar una jerarquía de actividad establecida que hizo cosas como usarPreferenceActivity
fueran imposibles.Para más información, consulte las bibliotecas de soporte de Chris Banes v22-1-0
fuente
La última versión de la biblioteca de soporte de Android, 22.1, desaprueba la versión
ActionBarActivity
a favor deAppCompatActivity
, que promete traer una única coherenteActionBar
para todos los dispositivos que comiencen con API Nivel 7 y superiorfuente