2016-02-11 15 views
11

Dodaję Toolbar wewnątrz mojej aplikacji, ale wydaje mi się, że mam problem. W aplikacji powinienem mieć przycisk po prawej stronie ekranu i tytuł w środku. Ale kiedy wchodzę głębiej w aplikację, powinienem wyświetlić strzałkę po lewej stronie, wykonując getSupportActionBar().setDisplayHomeAsUpEnabled(). To działa dobrze, ale kiedy dodaję przycisk Wstecz, tekst przesuwa się w prawo, więc przycisk Wstecz może mieć trochę miejsca. Czy ktoś może mi powiedzieć, jak mogę mieć mój przycisk po prawej stronie, a tytuł zawsze w środku, czy nie, jeśli wyświetla się przycisk "Wstecz", czy nie?Pasek narzędzi wyrównania tytułu w środku z przyciskiem Wróć

Oto mój Pasek kod układ xml:

<?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> 
+1

Tylko niektóre obejście, ale krótka i droga na słowo Idea to dodanie strzałki wstecznej w układzie, ukrywanie, pokazywanie i kontrolowanie zachowania przez siebie. – yennsarah

+1

@Amy tak, ale czy to jest dobra praktyka. Zamierzam szukać rozwiązania, które powinno być dobre, więc mogę go używać w przyszłości i pomoże innym również –

+0

Jeśli nie ma innej możliwości, może to być dobra opinia. W przeciwnym razie był to tylko pomysł na szybką naprawę. :) – yennsarah

Odpowiedz

0

Przede wszystkim kilka ogólnych wskazówek. Dokładnie taki jest cel Androida Hierarchical view. Użyj go, aby dowiedzieć się, jaki jest obiekt kontenera przycisku Wstecz, jak wszystko razem pasuje, itp.

Podejrzewam, że możesz rozwiązać problem w pewnym zakresie, zmieniając niektóre z wrap_content na match_parent. W szczególności podejrzewam, że zmiana go na RelativeLayout dlawystarczy. Ale nawet jeśli tak nie jest, skorzystaj z widoku hierarchicznego, aby lepiej zrozumieć, co dokładnie dzieje się podczas zabawy, a to powinno pomóc ci we właściwym kierunku.

5

Co pracował dla mnie jest ustawienie:

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

do widoku podrzędnej Toolbar, który jest LinearLayout dla mnie (i RelativeLayout dla ciebie). Brzmiało to dla mnie dziwnie, ale działa, więc nie będę narzekać.

+0

Zdecydowanie nie jest to odpowiedź na ten problem – josemigallas

Powiązane problemy