2016-11-26 4 views
0

Die LinearLayout verschoben, die innerhalb Toolbar gelegt worden ist, ist nach rechts verschoben, wie man sehen kann ...-Layout im Inneren Toolbar ist auf der rechten Seite

Als Ergebnis wird der Toolbar nicht stapeln sich gut mit dem TabHost (welches wiederum mit einem Toolbar in einem Elternteil implementiert wird Fragment).

  • Wie kann ich es beheben?

Planskizze (Android Studio)

enter image description here

Actual App

enter image description here


Layoutcode

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      tools:context="com.android.example"> 


<android.support.v7.widget.RecyclerView 
    android:id="@+id/recview_navigator" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginBottom="2dp" 
    android:layout_weight="1"/> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:backgroundTint="@color/accent"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar_navigator" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      <ImageView 
       android:id="@+id/imageView_navigator_up" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_weight="1" 
       android:src="@drawable/ic_navigate_before_white_48dp" 
       android:tint="@color/recview"/> 

      <ImageView 
       android:id="@+id/imageView_navigator_save" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_weight="1" 
       android:src="@drawable/ic_save_white_48dp" 
       android:tint="@color/recview"/> 
     </LinearLayout> 
    </android.support.v7.widget.Toolbar> 
</android.support.design.widget.AppBarLayout> 
</LinearLayout> 
+0

Wenn Sie nicht 'AppBarLayout' oder' Toolbar' verwenden, entfernen Sie sie aus dem Layout. –

Antwort

4

Haben Sie versucht, die Inhaltseinfügungen zu entfernen?

<android.support.v7.widget.Toolbar`  
    app:contentInsetStart="0dp" 
    app:contentInsetLeft="0dp" 
...> 
+0

Ja, es funktioniert. Das ist die beste Lösung, denke ich. Vielen Dank. –

1

Das Problem

Der zusätzliche Spielraum Raum wegen der toolbar-Tag ist. Es hat standardmäßig 16dp Speicherplatz. Es ist erforderlich, damit Icons wie hamburger, app_icon oder up-caret angezeigt werden können.

Wie können Sie es beheben?

Nun, das ist der Hack android:layout_marginLeft="-16dp" Attribut im toolbar Tag, aber das kann vermasselt das Layout, wenn up-caret (Back-Taste) angezeigt wird, wenn ein Kind Aktivität genannt wird oder Hamburger-Symbol im Fall umfasste von eine Navigationsschublade.

Ich habe darüber früher here geschrieben.

Wenn Sie nicht die Funktionalität von toolbar verwenden möchten, dann ist es besser, das ganze appBarLayout durch das folgende Layout zu ersetzen.

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/colorAccent" 
    android:orientation="horizontal"> 

    <ImageView 
     android:id="@+id/imageView_navigator_up" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:adjustViewBounds="false" 
     android:src="@drawable/ic_navigate_before_white_48dp"/> 

    <ImageView 
     android:id="@+id/imageView_navigator_save" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:src="@drawable/ic_save_black_48dp"/> 
</LinearLayout> 
+0

Das funktioniert auch. Vielen Dank. –

Verwandte Themen