我的活动配置了使用splitActionBarWhenNarrow
的{{1}}。
我需要检查屏幕是否被视为窄,以了解分割栏是否可见,因为我必须将一个底部组件的位置更改为在可见时不与splitActionbar重叠。
PD:我知道如何检查方向,但我不确定 portrait 是否始终等于 narrow
答案 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
即可。