it-swarm.com.ru

Панель инструментов выравнивает заголовок по центру с помощью кнопки «Назад»

Я добавляю Toolbar в свое приложение, но, похоже, у меня проблема. В приложении у меня должна быть кнопка, которая находится в правой части экрана, и заголовок в центре. Но когда я углубляюсь в приложение, я должен отобразить стрелку назад слева, выполнив getSupportActionBar().setDisplayHomeAsUpEnabled(). И это работает нормально, но когда я добавляю кнопку "Назад", текст перемещается вправо, так что кнопка "Назад" может иметь некоторое пространство, я думаю Может кто-нибудь сказать мне, как у меня может быть моя кнопка справа и заголовок всегда в центре, не важно, отображается ли кнопка "Назад" или нет?

Вот мой код макета панели инструментов:

<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:background="@color/white"
    Android:padding="5dp"
    tools:ignore="MissingPrefix">

    <RelativeLayout
        Android:id="@+id/toolbar_info_holder"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content">

        <TextView
            Android:id="@+id/toolbar_title"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_centerInParent="true"
            Android:gravity="center"
            Android:textColor="@color/actionbar_title_color" />

        <ImageView
            Android:id="@+id/toolbar_image"
            Android:layout_width="40dp"
            Android:layout_height="40dp"
            Android:layout_alignParentRight="true"
            Android:layout_centerVertical="true" />

        <TextView
            Android:id="@+id/toolbar_count"
            Android:layout_width="13dp"
            Android:layout_height="13dp"
            Android:layout_alignParentRight="true"
            Android:layout_alignParentTop="true"
            Android:background="@drawable/red_circle"
            Android:gravity="center"
            Android:text="4"
            Android:textColor="@color/white"
            Android:textSize="9sp" />
    </RelativeLayout>

</Android.support.v7.widget.Toolbar>
14
Darko Petkovski

Что сработало для меня, это установить:

Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:gravity="center"

на дочерний вид Панели инструментов, который является LinearLayout для меня (и RelativeLayout для вас). Сначала это звучало странно, но это работает, поэтому я не буду жаловаться.

2
Tristan Frascari

У вас может быть набор заголовков действий, которые не позволят центрировать логотип на панели действий.

Пытаться:

getActionBar () setDisplayShowTitleEnabled (ложь).

Для v.7:

getSupportActionBar () setDisplayShowTitleEnabled (ложь).

Это происходит от этот вопрос и ответ . Кредит @ Филиппо Мазза.

Надеюсь, поможет.

0
Vall0n

Прежде всего несколько общих советов. Именно в этом и заключается цель Android Иерархическое представление . Используйте это, чтобы выяснить, что представляет собой контейнерный объект кнопки "Назад", как все сходится и т.д.

Я подозреваю, что вы можете решить проблему до некоторой степени, изменив некоторые из wrap_content на match_parent. В частности, я подозреваю, что изменение его в вашем RelativeLayout для layout_width поможет. Но даже если этого не произойдет, используйте иерархическое представление, чтобы лучше понять, что именно происходит, когда вы играете, и это должно помочь направить вас в правильном направлении.

0
PearsonArtPhoto