web-dev-qa-db-ja.com

Androidでツールバーの画像を右揃えにする方法

アクティビティでToolBarを使用しています。ユーザーのプロフィール写真を右揃えにしたい。 Android:layout_alignParentRight="true"を使用しましたが、機能しません。

1。 XML

<Android.support.v4.widget.DrawerLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/drawer_layout"
Android:layout_width="match_parent"
Android:layout_height="match_parent">

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">

    <!--Top Toolbar-->
    <Android.support.v7.widget.Toolbar
        Android:id="@+id/toolbar_top"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_alignParentTop="true"
        Android:background="#3f5e7e"
        Android:elevation="6dp"
        Android:minHeight="?attr/actionBarSize"
        Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        >
    <com.sevenhorse.View.CircularImageView
        Android:id="@+id/profile"
        Android:layout_width="40sp"
        Android:layout_height="40sp"
        Android:layout_alignParentRight="true"
        Android:foregroundGravity="right"
        />
       <!-- Android:layout_centerVertical="true"-->
    </Android.support.v7.widget.Toolbar>

    <Android.support.design.widget.TabLayout
        Android:id="@+id/tab_layout"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_below="@+id/toolbar_top"
        Android:background="#fbae38"
        Android:elevation="6dp"
        Android:minHeight="?attr/actionBarSize"
        Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:tabGravity="fill"
        app:tabMode="fixed"/>


    <Android.support.v4.view.ViewPager
        Android:id="@+id/pager"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:layout_above="@+id/reltv_footer"
        Android:layout_below="@+id/tab_layout"></Android.support.v4.view.ViewPager>

    <RelativeLayout
        Android:id="@+id/reltv_footer"
        Android:layout_width="match_parent"
        Android:layout_height="50sp"
        Android:layout_alignParentBottom="true"
        Android:background="#2b4d72">

        <LinearLayout
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_alignParentRight="true"
            Android:layout_centerVertical="true"
            Android:padding="20sp" />

        <ImageView
            Android:id="@+id/img_Profile"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_alignParentRight="true"
            Android:layout_centerVertical="true"
            Android:background="#2b4d72"
            Android:padding="15sp"
            Android:src="@drawable/more_option" />

        <View
            Android:id="@+id/img_view"
            Android:layout_width="3sp"
            Android:layout_height="fill_parent"
            Android:layout_toLeftOf="@+id/img_Profile"
            Android:background="#335980" />

        <LinearLayout
            Android:layout_width="fill_parent"
            Android:layout_height="fill_parent"
            Android:layout_toLeftOf="@+id/img_view"
            Android:background="#2b4d72"
            Android:gravity="left"
            Android:orientation="horizontal">

            <ImageView
                Android:id="@+id/home"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_alignParentRight="true"
                Android:layout_centerVertical="true"
                Android:background="#203b58"
                Android:padding="15sp"
                Android:src="@drawable/home" />

            <View
                Android:layout_width="2sp"
                Android:layout_height="fill_parent"
                Android:layout_toLeftOf="@+id/img_Profile"
                Android:background="#203b58" />

            <ImageView
                Android:id="@+id/friendrequest"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_alignParentRight="true"
                Android:layout_centerVertical="true"
                Android:padding="15sp"
                Android:src="@drawable/friend_req" />

            <View
                Android:layout_width="2sp"
                Android:layout_height="fill_parent"
                Android:layout_toLeftOf="@+id/img_Profile"
                Android:background="#203b58" />

            <ImageView
                Android:id="@+id/message"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_alignParentRight="true"
                Android:layout_centerVertical="true"
                Android:padding="15sp"
                Android:src="@drawable/meg" />

            <View
                Android:layout_width="2sp"
                Android:layout_height="fill_parent"
                Android:layout_toLeftOf="@+id/img_Profile"
                Android:background="#203b58" />

            <ImageView
                Android:id="@+id/notification"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_alignParentRight="true"
                Android:layout_centerVertical="true"
                Android:padding="15sp"
                Android:src="@drawable/footer_notification" />
        </LinearLayout>
    </RelativeLayout>

    <RelativeLayout
        Android:id="@+id/reltv_Menu"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_above="@+id/reltv_footer"
        Android:layout_alignParentRight="true"
        Android:background="#ffffff"
        Android:visibility="gone">

        <ListView
            Android:id="@+id/listviewmoroption"
            Android:layout_width="200sp"
            Android:layout_height="wrap_content"
            Android:divider="#6d6d6d"
            Android:dividerHeight="1sp"></ListView>
    </RelativeLayout>
</RelativeLayout>

<FrameLayout
    Android:id="@+id/content_frame"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent" />

<LinearLayout
    Android:id="@+id/left_drawer"
    Android:layout_width="wrap_content"
    Android:layout_height="match_parent"
    Android:layout_gravity="right"
    Android:background="@Android:color/white"
    Android:choiceMode="singleChoice"
    Android:orientation="vertical">

    <include layout="@layout/cust_rightnavigationdrawer" />
</LinearLayout>

2.ScreenShot

ScreenShot

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

17
Deepak Rattan

RelativeLayout内でのみAndroid:layout_alignParentRight="true"を使用でき、Toolbarは単純なViewGroupです。位置合わせを行うには、RelativeLayoutToolbar内に追加し、ImageViewをその中に移動します。

<Android.support.v7.widget.Toolbar
        ...
        >
    <RelativeLayout
        ...>
        <com.sevenhorse.View.CircularImageView
            ...
            Android:layout_alignParentRight="true"
            ...
        />

    </RelativeLayout>

</Android.support.v7.widget.Toolbar>
24
Egor

Android:layout_gravity="right"

<com.sevenhorse.View.CircularImageView
        Android:id="@+id/profile"
        Android:layout_width="40sp"
        Android:layout_height="40sp"
        Android:foregroundGravity="right"
        Android:layout_gravity="right"
        Android:layout_alignParentRight="true"
        />
15

内部には、線形レイアウト、フレームレイアウトなどのレイアウトを配置できます。

  • そのレイアウト幅は親と一致する必要があります

ツールバーにRelativeLayoutを追加してから、Android:layout_alignParentRight="true" with CircularImageView

<!--Top Toolbar-->
<Android.support.v7.widget.Toolbar
    Android:id="@+id/toolbar_top"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_alignParentTop="true"
    Android:background="#3f5e7e"
    Android:elevation="6dp"
    Android:minHeight="?attr/actionBarSize"
    Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    >

    <RelativeLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content">

        <com.sevenhorse.View.CircularImageView
            Android:id="@+id/profile"
            Android:layout_width="40sp"
            Android:layout_height="40sp"
            Android:layout_alignParentRight="true"
            Android:foregroundGravity="right"
            />
           <!-- Android:layout_centerVertical="true"-->

   </RelativeLayout>

</Android.support.v7.widget.Toolbar>
1
Pehlaj

受け入れられた回答は_layout_width="match_parent"_の場合にのみ機能しますが、このアクションはツールバータイトルを覆い隠す/非表示にします。画像とツールバーのタイトルの両方を表示する唯一の方法は、相対レイアウトの幅を固定長として、それはほとんどの人にとって理想的ではありません。それでも、相対レイアウトは右に揃えられません

私の回避策
相対レイアウト幅を_layout_width="match_parent"_(これによりツールバーのタイトルが非表示になります)にして、その中にプレーンtextviewを追加します_alignParentStart="true"_
次に、メインアクティビティでtoolbar.setTitle("my_title")textView.setText("my_title")に置き換えます

i.e

_<androidx.appcompat.widget.Toolbar Android:id="@+id/toolbar"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:background="@color/colorPrimary"
    Android:minHeight="?attr/actionBarSize"
    Android:theme="@style/AppTheme.AppBarOverlay"
    app:popupTheme="@style/AppTheme.PopupOverlay">
    <RelativeLayout Android:id="@+id/toolbar_item_container"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content">

        <!--The Title Bar -->
        <TextView Android:id="@+id/title_bar"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            style="@style/heading"
            Android:textColor="@color/white"
            Android:layout_alignParentStart="true" />

        <!--The Inbox-->
        <RelativeLayout
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:clickable="true"
            Android:focusable="true"
            Android:foreground="?android:attr/selectableItemBackground"
            Android:layout_marginEnd="@dimen/layout_margin"
            Android:layout_toLeftOf="@+id/switchhouse_panel">
            <ImageView Android:id="@+id/house_admin_messages"
                Android:layout_width="25dp"
                Android:layout_height="25dp"
                Android:cropToPadding="true"
                Android:scaleType="centerCrop"
                app:srcCompat="@drawable/ic_email_white_24dp"
                Android:layout_alignParentTop="true"/>
            <ImageView
                Android:layout_width="wrap_content"
                Android:layout_height="20dp"
                Android:background="@drawable/circle_custom"
                Android:backgroundTint="@color/green"
                Android:cropToPadding="true"
                Android:layout_marginStart="20dp"/>
        </RelativeLayout>

        <!--The Switch-->
        <RelativeLayout Android:id="@+id/switchhouse_panel"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:clickable="true"
            Android:focusable="true"
            Android:foreground="?android:attr/selectableItemBackground"
            Android:layout_marginStart="@dimen/layout_margin"
            Android:layout_alignParentRight="true">
            <ImageView Android:id="@+id/house_cover_thumbnail"
                Android:layout_width="30dp"
                Android:layout_height="30dp"
                Android:background="@drawable/circle_custom"
                Android:cropToPadding="true"
                Android:scaleType="centerCrop"
                Android:layout_alignParentTop="true"/>
            <ImageView
                Android:layout_width="20dp"
                Android:layout_height="20dp"
                Android:background="@drawable/circle_custom"
                Android:padding="3dp"
                app:srcCompat="@drawable/ic_cached_black_24dp"
                Android:cropToPadding="true"
                Android:layout_marginStart="20dp"/>
        </RelativeLayout>
    </RelativeLayout>
</androidx.appcompat.widget.Toolbar>
_

主な活動

_TextView title_bar = findViewById(R.id.title_bar);
title_bar.setText("Manage Property");
_

The Result

0
Lefty