我有一个配置了splitActionBarWhenNarrow
使用的活动requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY)
。
而且我需要检查屏幕是否被认为是窄的,以了解 splitbar 是否可见,因为我必须更改一个底部组件的位置,使其在可见时不与 splitActionbar 重叠。
PD:我知道如何检查方向,但我不确定纵向是否总是等于窄
我有一个配置了splitActionBarWhenNarrow
使用的活动requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY)
。
而且我需要检查屏幕是否被认为是窄的,以了解 splitbar 是否可见,因为我必须更改一个底部组件的位置,使其在可见时不与 splitActionbar 重叠。
PD:我知道如何检查方向,但我不确定纵向是否总是等于窄
通过检查 ActionBarSherlock 源,我发现了一个似乎运行良好的解决方案:values.xml
在您的values
资源目录中创建一个并添加一个新的布尔属性,如下所示:
<resources>
<bool name="screen_is_narrow">true</bool>
</resources>
values.xml
然后在values-w480dp
目录中创建第二个:
<resources>
<bool name="screen_is_narrow">false</bool>
</resources>
如果屏幕宽于 480dp,第二个资源将自动加载。在纵向模式下,您的手机屏幕比那小,screen_is_narrow
而true
在横向模式和平板电脑上它更宽,因此screen_is_narrow
变成false
.
基于该逻辑,您现在可以简单地检查您的活动代码:
boolean screenIsNarrow = getResources().getBoolean(R.bool.screen_is_narrow);
这应该够了吧。如果您已经在使用 ActionBarSherlock,那么还有一个更简单的解决方案,因为布尔值已经被预定义。只需检查R.bool.abs__split_action_bar_is_narrow
您的代码。