web-dev-qa-db-ja.com

ProgressBarをツールバーの右側に配置するにはどうすればよいですか?

新しい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の返信を参照してください。

24
doplumi

これを試すことができます。それは私のために働いた。ここで重要なのは、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>
38
dhiku

私も同じ壁にぶつかりましたが、プログラム的には機能します:

    Toolbar.LayoutParams layoutParams = new Toolbar.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT,
            Gravity.TOP | Gravity.RIGHT);

スニペットでは、メニューの配置に合わせて、上部に配置します。

14
mdelolmo