2015-01-11 9 views
11

私の最小およびターゲットsdkが21で、サポートライブラリを使用していません。Androidツールバーが横長モードで高すぎます

私は新しいツールバーウィジェットを使用していますが、一般的には機能していますが、見た目にはちょっとした不具合があります。アクションアイコンはポートレートモードの中央に配置されますが、ランドスケープモードのツールバーは高くなり、アイコンは中央に配置されません。 (行は単に問題をより見やすくするためにある読み取り)スクリーンショットを見てみてください:

  • 肖像:

portrait mode

  • 風景:

landscape mode

これは何もないように見えるかもしれませんが、アクションが選択されたとき(バーの左端にある「上向き」の矢印のような)、その結果、その下の数ピクセルのストリップが表示されます。私は見た目が好きではありません。

アクティビティは設定の変更自体を管理しません。

これは私のコードです:

  • のstyles.xml:

    <?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    
        <style name="MyTheme" parent="android:Theme.Material.NoActionBar"> 
         <item name="android:toolbarStyle">@style/MyToolbarStyle</item> 
        </style> 
    
        <style name="MyToolbarStyle" parent="android:Widget.Toolbar"> 
         <item name="android:background">?android:attr/colorPrimary</item> 
         <item name="android:elevation">2dp</item> 
        </style> 
    
    </resources> 
    
  • XMLの使用状況:

私はアンドロイドをいじりみました:minHeightプロパティ属性を設定しますが、saに設定しますy、30dpはちょうどポートレートモードでもアイコンをさらに上に動かしました。

私はこれ見つからなかっ:https://code.google.com/p/android/issues/detail?id=77874 をしかし、誰がそこにあるのattr/actionBarSize ...

すべてであれば、この問題が解決することができますどのように、

?スクリーンショットを撮った電話はNexus 6(xxxhdpi)で、アイコンはGoogleアイコンパックからのもので、最大のリソースはxxhdpiです。これは問題ですか?

更新:上記のリンクからの回避策は、android:attr/actionBarSizeを使用するとうまくいきます。しかし、これが唯一の方法ですか?このような新たな光沢のあるコンポーネントに対してこのような回避策が必要な場合は、少し間違っているように見えますが、回避策ではコンポーネントの属性値を新しいものに置き換える必要があります。

+0

あなたの実装をJavaコードで表示できますか? また、私はあなたのスタイルの使用を見ていない? –

+0

これに関連するJavaコードはありません。スタイルはAndroidManifest.xmlにアプリケーション全体のテーマとして設定されているので、アプリのすべてのツールバーには「MyToolbarStyle」スタイルが使用されます。 – wujek

+0

私の意見では、ToolbarはActionBarの使用に慣れているだけでなく、背の高さや他のものなどを表示することができます。 クラシックActionBarは、横向きのサイズで縮小し、アイコンを少し上に移動します。ツールバーを使用すると、アイコンはまだシフトしますが、サイズは指定する限りです。今度は、ツールバーの高さを望むなら、おそらくあなたのコントロールからツールバーのサイズを変更したくないでしょう。 「?android:attr/actionBarSize」だけを指定すると、私にとっては大丈夫です:) – Antimonit

答えて

3

は、使用しよう:あなたのツールバーのための

android:height="?android:attr/actionBarSize" 

1

は、ツールバーのスタイルでこれを追加します。

<item name="maxButtonHeight">?attr/actionBarSize</item> 
0

私はandroid.support.v7.widget.Toolbarと同じ問題を抱えていました。

私のソリューション:

あなたのツールバーに必要高さとRelativeLayoutにあなたのツールバーを入れてください。ツールバーのlayout_heightを "wrap_content"に設定し、それを垂直の中心に合わせます。私はそれが助けて欲しい

<RelativeLayout 
     android:id="@+id/main_toolbar_relative_layout" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     > 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/main_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      > 
    </android.support.v7.widget.Toolbar> 
</RelativeLayout> 
関連する問題