Android 检查屏幕是否狭窄

Android 检查屏幕是否狭窄,android,android-actionbar,android-orientation,Android,Android Actionbar,Android Orientation,我有一个活动配置为splitActionBarWhenNarrow,它使用requestWindowFeature(Window.FEATURE\u ACTION\u BAR\u OVERLAY) 我需要检查屏幕是否被视为狭窄,以了解拆分栏是否可见,因为我必须更改一个底部组件的位置,以便在可见时不与拆分栏重叠 PD:我知道如何检查方向,但我不确定纵向是否总是等于窄的通过检查ActionBarSherlock源代码,我找到了一个似乎效果很好的解决方案:在values资源目录中创建values.xm

我有一个活动配置为
splitActionBarWhenNarrow
,它使用
requestWindowFeature(Window.FEATURE\u ACTION\u BAR\u OVERLAY)

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


PD:我知道如何检查方向,但我不确定纵向是否总是等于窄的通过检查ActionBarSherlock源代码,我找到了一个似乎效果很好的解决方案:在
values
资源目录中创建
values.xml
,并添加一个新的布尔属性,如下所示:

<resources>
    <bool name="screen_is_narrow">true</bool>
</resources>
如果屏幕宽度大于480dp,将自动加载第二个资源。在纵向模式下,您的手机屏幕比纵向模式下的屏幕小,因此
屏幕窄
,而在横向模式和平板电脑上,屏幕宽,因此
屏幕窄
变为

基于该逻辑,您现在只需检查活动代码即可:

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

这应该能奏效。如果您已经在使用ActionBarSherlock,那么还有一个更简单的解决方案,因为布尔值已经预定义。只需检查代码中的
R.bool.abs\uuuu split\uu action\uu bar\u狭窄即可。

我不明白为什么不应该。该逻辑独立于任何库,但利用平台功能:根据设备配置(例如屏幕大小)加载资源(xml)。布尔值用于以编程方式确定大小。但是你可以以同样的方式加载所有类型的资源,比如图形、布局甚至颜色
boolean screenIsNarrow = getResources().getBoolean(R.bool.screen_is_narrow);