ActionBarSherlock のソースを確認することで、非常にうまく機能しているように見える解決策を見つけました。リソース ディレクトリに avalues.xml
を作成し、values
次のような新しいブール プロパティを追加します。
<resources>
<bool name="screen_is_narrow">true</bool>
</resources>
次にvalues.xml
、values-w480dp
ディレクトリに 2 番目を作成します。
<resources>
<bool name="screen_is_narrow">false</bool>
</resources>
この 2 番目のリソースは、画面の幅が 480 dp を超える場合に自動的に読み込まれます。screen_is_narrow
縦向きモードでは携帯電話の画面はそれよりも小さいのtrue
に対し、横向きモードやタブレットでは幅が広くなりscreen_is_narrow
、false
.
そのロジックに基づいて、Activity コードで簡単にチェックを行うことができます。
boolean screenIsNarrow = getResources().getBoolean(R.bool.screen_is_narrow);
これでうまくいくはずです。すでに ActionBarSherlock を使用している場合は、ブール値が既に定義されているため、さらに簡単な解決策があります。コードでチェックするだけR.bool.abs__split_action_bar_is_narrow
です。