me encontré con el mismo problema. En dispositivos telefónicos en modo retrato, la barra de acciones está dividida. Así que los elementos del menú se encuentran en la barra de acciones superior y las pestañas en una segunda barra de acción (tabbar) a continuación. Simplemente no encontré ninguna manera posible de determinar la altura de la barra de acciones: para ver qué espacio queda en la pantalla antes de construir mi pantalla.
por lo que hice una suposición:
- en dispositivos ScreenSize pequeñas y normales de la barra de acción se divide en modo vertical
- en dispositivos grandes ScreenSize (como el Nexus 7) de la barra de acción también se divide en modo vertical
- en dispositivos ScreenSize XLarge (comprimidos) de la barra de acción no se divide en modo vertical
Así que distinguen a los diferentes tamaños de pantalla y ha creado un recurso bool
<!-- res/values/booleans.xml -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="is_split_actionbar">false</bool>
</resources>
<!-- res/values-small-port/booleans.xml
res/values-normal-port/booleans.xml
res/values-large-port/booleans.xml -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="is_split_actionbar">true</bool>
</resources>
En el código que acceder al valor de esta manera:
Boolean isSplit = getResources().getBoolean(R.bool.is_split_actionbar);
para obtener la altura actionbar en el onCreateView() Método:
TypedValue typedVal = new TypedValue();
getActivity().getTheme().resolveAttribute(R.attr.actionBarSize, typedVal, true); // use android.R when not using ABS
int actionBarHeight = getResources().getDimensionPixelSize(typedVal.resourceId);
Y el doble de la altura si el actionbar está dividido:
if(isSplit)
actionBarHeight = actionBarHeight * 2;
No es una solución ideal, pero para mí esto funciona.
Sí, también necesito saber si existe. De todos modos, me dijeron (creo Roman) en las horas de oficina de Android que esto simplemente no era posible. Al menos no de una manera fácil y directa. Por lo tanto, ahora estamos experimentando con una única barra de acción superior y, en cambio, imitamos la barra de acciones inferior con una vista normal. Esto resuelve no solo este problema sino también otro en el que queríamos "forzar" algunas acciones a la barra de acciones superior. – pakerfeldt