2

我有一个配置了splitActionBarWhenNarrow使用的活动requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY)

而且我需要检查屏幕是否被认为是窄的,以了解 splitbar 是否可见,因为我必须更改一个底部组件的位置,使其在可见时不与 splitActionbar 重叠。

PD:我知道如何检查方向,但我不确定纵向是否总是等于

4

1 回答 1

3

通过检查 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_narrowtrue在横向模式和平板电脑上它更宽,因此screen_is_narrow变成false.

基于该逻辑,您现在可以简单地检查您的活动代码:

boolean screenIsNarrow = getResources().getBoolean(R.bool.screen_is_narrow);

这应该够了吧。如果您已经在使用 ActionBarSherlock,那么还有一个更简单的解决方案,因为布尔值已经被预定义。只需检查R.bool.abs__split_action_bar_is_narrow您的代码。

于 2012-11-05T19:40:03.410 回答