2

splitActionBarWhenNarrowを使用して構成されたアクティビティがありますrequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY)

また、表示されているときに splitActionbar と重ならないように 1 つの下部コンポーネントの位置を変更する必要があるため、splitbar が表示されているかどうかを知るために、画面が狭いと見なされているかどうかを確認する必要があります。

PD: 向きを確認する方法は知っていますが、縦向きと横向きが常に等しいかどうかはわかりません

4

1 に答える 1

3

ActionBarSherlock のソースを確認することで、非常にうまく機能しているように見える解決策を見つけました。リソース ディレクトリに avalues.xmlを作成し、values次のような新しいブール プロパティを追加します。

<resources>
    <bool name="screen_is_narrow">true</bool>
</resources>

次にvalues.xmlvalues-w480dpディレクトリに 2 番目を作成します。

<resources>
    <bool name="screen_is_narrow">false</bool>
</resources>

この 2 番目のリソースは、画面の幅が 480 dp を超える場合に自動的に読み込まれます。screen_is_narrow縦向きモードでは携帯電話の画面はそれよりも小さいのtrueに対し、横向きモードやタブレットでは幅が広くなりscreen_is_narrowfalse.

そのロジックに基づいて、Activity コードで簡単にチェックを行うことができます。

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

これでうまくいくはずです。すでに ActionBarSherlock を使用している場合は、ブール値が既に定義されているため、さらに簡単な解決策があります。コードでチェックするだけR.bool.abs__split_action_bar_is_narrowです。

于 2012-11-05T19:40:03.410 に答える