サポートツールバーの戻るボタンを中央に配置しようとして問題があります。 ActionBarActivity内で使用しています。
_<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:toolbar="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="?attr/colorPrimary"
Android:minHeight="?attr/actionBarSize"
toolbar:popupTheme="@style/ThemeOverlay.AppCompat.Light"
toolbar:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
_
そして、次のようにアクティビティのonCreate()
内にセットアップナビゲーションを設定します。
_Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(R.string.title_activity_scanner);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
_
しかし、私が得ているのはこれです: あなたが見ることができるように、戻るボタンが見当違いです
編集:問題は、_?attr/actionBarSize
_のカスタム値が40dpに設定されているように見えますが、代わりにタイトルが間違っていることが判明しました。
ツールバーは、ActionBarよりも焦点を絞った機能セットをサポートします。最初から最後まで、ツールバーには次のオプション要素の組み合わせが含まれる場合があります。
ナビゲーションボタン。これは、上矢印、ナビゲーションメニューの切り替え、閉じる、折りたたみ、完了、またはアプリが選択した別のグリフです。このボタンは、常にツールバーのコンテナ内のその他のナビゲーション宛先とそのコンテンツにアクセスするために使用するか、現在のコンテキストをツールバーで指定したままにする必要があります。 ナビゲーションボタンは、設定されている場合、ツールバーの最小の高さ内に垂直に配置されます。
したがって、minHeight属性をツールバーの高さ(layout_height)と同じに設定すると、戻る矢印は垂直方向の中央に配置されます。
内部ActionBarActivity
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBat().setTitle("Hello World");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
レイアウトコード:
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
Android:background="@color/primary"
app:theme="@style/ToolbarTheme"
app:popupTheme="@style/Theme.AppCompat"/>
そしてスタイル:
<style name="AppTheme.Base" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="Android:windowNoTitle">true</item>
<item name="Android:windowActionBar">false</item>
<item name="windowActionBar">false</item>
</style>
<style name="AppTheme" parent="AppTheme.Base">
ツールバーは単なるビューグループであるため、任意の方法でスタイル設定できます。これが画像リンクです: ツールバーのサンプル
それが役に立てば幸い。
これを実現する最良の方法は、ツールバーから通常の「戻る」ボタンを削除し、XMLレイアウトにカスタムImageButtonを追加して、それに画像を設定することです。このImageButttonは、ツールバー上の好きな場所に配置できます。
アクティビティレイアウトコードは次のようになります。
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<include
Android:id="@+id/toolbar"
layout="@layout/toolbar" />
<ImageButton
Android:layout_width="60dp"
Android:layout_height="60dp"
Android:id="@+id/button"
Android:src="@drawable/attach_icon"
Android:layout_alignParentTop="true"
Android:layout_centerHorizontal="true" />
</RelativeLayout>
@Rick Sanchezの答えは仕事です、セットアップツールバーのlayout_heightはminHeightと同じです
私はツールバーのコンストラクタでボタンの重力を設定できるフィールドがあることを発見しました、mButtonGravity = a.getInteger(R.styleable.Toolbar_buttonGravity, Gravity.TOP);
、v7サポートツールバーはセットアップできません、mButtonGravity = Gravity.TOP;
@ Rick Sanchez answer の便乗:-ツールバーのminHeight
属性のサイズがわかっている場合は、次を使用できます。
Android:gravity="top"
app:titleMarginTop="@dimen/margin_to_center"
ツールバーでテキストを中央揃えにします。 Android:minHeight="?actionBarSize"
を使用している場合、これは約13pです
私にとっては、どのソリューションも機能しませんでした。私の場合、問題は私が適用したマージンでした:
<Android.support.v7.widget.Toolbar
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
... >
<View
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginBottom="10dp"
Android:layout_marginTop="10dp" />
</Android.support.v7.widget.Toolbar>
ツールバーに直接適用した後、ボタンは垂直方向の中央に配置されました。
<Android.support.v7.widget.Toolbar
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginBottom="10dp"
Android:layout_marginTop="10dp"
... >
<View
Android:layout_width="match_parent"
Android:layout_height="wrap_content" />
</Android.support.v7.widget.Toolbar>
ボタンのサイズを作成56dp
およびscaleType
をcenter
に設定し、Appbar
に余白を付けないでくださいアイコンが24x24
寸法