10

私はここ数日間ActionBarとActionBarSherlockで作業していましたが、ActionBarの情報を入力するときに問題が発生しています。Android(ActionBarSherlock)同じActionBarの高さをポートレートとランドスケープの両方で維持する方法はありますか?

アプリケーションがポートレートモードで実行すると、アクションバーが正常に見える、とすべてのデータは、例えば、表示することができます。

ActionBar in portrait mode

しかし、私はアプリは風景の中に表示されるように切り替えて、いくつかのデータのトリミングされています

ActionBar in landscape mode

あなたはステータスアイコンと電子メールの両方が原因アクションバーの新しい高さにトリミングされているかに気づくことができます。

この場合、アプリがうまく見えるように縦と横のサイズを同じにしたいと思います。他のアイコンが含まれている可能性があるので、アクションバーのタイトルのフォントサイズを小さくすることはできません。

アクションバーのタイトルとサブタイトルにこれらのアイコンを置く方法を - 私は、この問題を解決するためにHtml.fromHtml

任意のアイデアを使用しているのですか?私はActionBarSherlockライブラリを使用しています!

答えて

23

おそらくあまりにもきれいなアプローチでは、ActionBarのデフォルトの高さ値を dimens.xmlに変更することができます。

など。肖像画のデフォルト値は次のとおりです。

<dimen name="abs__action_bar_default_height">48dip</dimen> 

や風景に:

<dimen name="abs__action_bar_default_height">40dip</dimen> 

あり、それを行うためのクリーンな方法であることが、私は私がのためにActionBarSherlockの内部に関する少なすぎるを知っ認めざるを得ないかもしれませんそれ。


編集:高さは、その後?android:attr/actionBarSizeにプラットフォーム値に解決されますので、ネイティブのアクションバーは、ICSで使用されているとき、これはおそらく動作しません、そういえば。より良い提案を待つことをおすすめします。ジェイク自身から。

第二編集:

<item name="actionBarSize">@dimen/some_value</item> 
<item name="android:actionBarSize">@dimen/some_value</item> 
:ジェイクの返信後
あなたはそれがICSとプリICSデバイスの両方にActionBarSherlockで動作させるために行うために必要なすべてのアプリのテーマに以下を追加しているように思えます

次に、関連するポートレート/ランドリソースバケットに実際の値を追加できます。

第編集 [おかげ alvarolb]:XMLの例のスタイルのために:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar"> 
     <item name="actionBarSize">48dip</item> 
     <item name="android:actionBarSize">48dip</item> 
    </style> 
</resources> 

とそれに対応する活動で、

android:theme="@style/Theme.Styled" 

と...それが動作します。この新しいスタイルを設定します!

+0

ジェイクからの意見を受け入れました。これは興味深い問題です。私はICSのバニラGTalkアプリケーションでテストしましたが、このテキストを表示しないでください。 – Davek804

+0

良いアプローチですが、はい、私はそれがICS前のデバイスでのみ機能すると思います。 GTalkアプリケーションでは、タイトルサイズ(字幕ではない)がネイティブサイズよりも小さいように見えるため、この問題は表示されません。しかし、私がコメントしたように、タイトルには他の(より大きな)アイコンも含まれるので、私はこれを行うことができません。私はジェイクの反応を待つつもりです=) –

+1

あなたのフォローアップは正しいです。テーマに「アンドイド」プレフィックスの付いていないバージョンが必要なだけで、pre-ICSでも動作します。あなたはトップセクションを打つことをお勧めします。 –