2016-12-05 5 views
0

Meine Haupttätigkeit hat eine Toolbar in einem AppBarLayout und ein unter dem gehören:inklusive Layout deckt Eltern Layout

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="com.zhephyr.somedaytoday.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimaryDark" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    </android.support.design.widget.AppBarLayout> 

    <include layout="@layout/activity_chrono_tab"/> 

</android.support.design.widget.CoordinatorLayout> 

Die mitgelieferte Layout ist ein RelativeLayout mit einem TabLayout zu einem ViewPager verbunden:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".ChronoSwipeViewActivity" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/colorVariant" 
     android:weightSum="1"> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/chrono_tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginStart="15dp" 
      android:layout_marginEnd="15dp" 
      app:tabMode="fixed" 
      android:background="@color/colorVariant"/> 
    </LinearLayout> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:srcCompat="@android:drawable/ic_dialog_email" 
     android:layout_margin="@dimen/fab_margin" 
     app:fabSize="normal" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentEnd="true"/> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/chrono_pager" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/tabs" /> 
</RelativeLayout> 

Das Problem, auf das ich gerade stoße, ist, dass das enthaltene Layout über meinem Hauptlayout sitzt und den gesamten Bildschirm ausfüllt. Ich kann die Toolbar nicht sehen, weil sie abgedeckt ist. Ich möchte, dass das enthaltene Layout nur den Bereich unter der Symbolleiste ausfüllt. Ich habe versucht, app:layout_behavior="@string/appbar_scrolling_view_behavior" in beiden Layouts und im Include ohne Erfolg zu platzieren. Wer weiß was los ist?

aktualisieren

Die Aktivität ist dies dargestellt ist:

shown activity

sollte innerhalb dieser und mit aus dem App-Titel angezeigt Diese Aktivität:

main activity

+0

Ändern Sie die Wurzel Ihres enthalten Layout 'android sind: layout_height = "wrap_content"' – codeMagic

+0

Da CoordinatorLayout ist intern FrameLayout. Das Attribut "match_parent" des enthaltenen Layouts wird darüber eingefügt. – Vinodh

Antwort

0

Ändern Sie den Stamm Ihres eingeschlossenen Layouts zu android:layout_height="wrap_content"

Derzeit ist es so wird es die Höhe des Elternteils füllen den gesamten Bildschirm.

Sie möchten auch Ihre <include>, android:layout_below="@id/toolbar" hinzufügen, um es unter der Symbolleiste zu platzieren. Standardmäßig platziert RelativeLayoutViews oben links. Wenn Sie diese Eigenschaft hinzufügen, wird sie aufgefordert, das enthaltene Layout unter der Symbolleiste zu starten.

Beachten Sie die letzten beiden Zeilen im folgenden Code.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".ChronoSwipeViewActivity" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

in Tag der Haupt Layout

<include layout="@layout/activity_chrono_tab" 
    android:layout_below="@id/toolbar"/> 
+0

Wenn ich dies versuche, gibt es einen Fehler, der besagt, dass keine Ressource gefunden wurde, die mit dem angegebenen Namen übereinstimmt (bei 'Layout_unten' mit dem Wert '@ ID/Symbolleiste'). – Michael

+0

Stellen Sie sicher, dass Sie es buchstabiert haben, wie es oben in Ihrem Symbolleisten-Layout deklariert ist, aber das sollte funktionieren. Sie könnten versuchen, ein '+' hier '@ + id/toolbar' hinzuzufügen, aber Sie sollten nicht brauchen, und es ist nicht wirklich der beste Weg. Vielleicht versuchen Sie auch, Ihr Projekt zu säubern. Dies ist manchmal notwendig, wenn xml-Änderungen vorgenommen werden. Wenn das immer noch nicht funktioniert, könnte ich versuchen, einen Blick auf Ihre XML-Dateien zu werfen. – codeMagic

+0

Immer noch nicht funktioniert. Bearbeitete Frage, um weitere Informationen hinzuzufügen. – Michael

Verwandte Themen