新しいLollipop APIでは、アクションバーのアスペクトをパーソナライズする場合はツールバーを使用する必要があります。
ProgressBarをツールバーに追加するのは、ツールバーのViewGroupに追加するのと同じくらい簡単です Chris Banesが述べたように 。
<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@color/material_green_500"
Android:minHeight="?attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<!-- Color is Brown 500 -->
<ProgressBar
Android:id="@+id/toolbar_progress_bar"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:indeterminateTint="#795548"
Android:indeterminateTintMode="src_in"/>
</Android.support.v7.widget.Toolbar>
しかし、それが属するツールバーの右側にどのように配置できますか?
layout_gravity
属性がツールバーに定義されていないようです。 xmlから設定しても効果はありません。 ProgressBarの幅を変更しようとしましたが、成功しませんでした。
私は何をしますか?
[〜#〜] edit [〜#〜]:この問題にはプログラムによる解決策があります。@ mdelolmoの返信を参照してください。
これを試すことができます。それは私のために働いた。ここで重要なのは、layout_gravity
のxml:Android:layout_gravity="right"
<Android.support.v7.widget.Toolbar
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@color/material_green_500"
Android:minHeight="?attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<!-- Color is Brown 500 -->
<ProgressBar
Android:id="@+id/toolbar_progress_bar"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:indeterminateTint="#795548"
Android:indeterminateTintMode="src_in"
Android:layout_gravity="right"
/>
</Android.support.v7.widget.Toolbar>
私も同じ壁にぶつかりましたが、プログラム的には機能します:
Toolbar.LayoutParams layoutParams = new Toolbar.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
Gravity.TOP | Gravity.RIGHT);
スニペットでは、メニューの配置に合わせて、上部に配置します。