检查屏幕是否狭窄

时间:2012-08-09 05:37:41

标签: android android-actionbar android-orientation

我的活动配置了使用splitActionBarWhenNarrow的{​​{1}}。

我需要检查屏幕是否被视为窄,以了解分割栏是否可见,因为我必须将一个底部组件的位置更改为在可见时不与splitActionbar重叠。

PD:我知道如何检查方向,但我不确定 portrait 是否始终等于 narrow

1 个答案:

答案 0 :(得分: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_narrow true,而在横向模式和平板电脑上则更宽,因此screen_is_narrow变为false

根据该逻辑,您现在只需检查您的活动代码:

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

这应该可以解决问题。如果您已经在使用ActionBarSherlock,那么由于已经预先定义了布尔值,因此有一个更简单的解决方案。只需在代码中检查R.bool.abs__split_action_bar_is_narrow即可。