2015-10-29 13 views
11

Próbuję utworzyć działanie za pomocą paska narzędzi (przykład jest w mniejszym lub większym stopniu zaczerpnięty z samouczka), ale pasek narzędzi zawsze pokrywa się z pozostałą treścią. Oto zrzut ekranu:Jak ustawić, aby pasek narzędzi nie nakładał się na inne treści w systemie Android?

enter image description here

Niebieska Pasek nakłada niektórych innych treści. Próbowałem wyszukać podobne pytanie na SO, ale znalazłem tylko coś niezwiązanego. Próbowałem również zmienić kolejność niektórych elementów i zastąpić je, co najwyżej pogorszyło układ.

Jestem pewien, że brakuje mi czegoś bardzo podstawowego, ale nie widzę co.

Kodeks activity_main.xml:

<?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=".MainActivity" > 

    <android.support.design.widget.AppBarLayout 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     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/colorPrimary"/> 

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

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

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

Kodeks content_main.xml:

<?xml version="1.0" encoding="utf-8"?> 
    <GridLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 

     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 

     android:useDefaultMargins="true" 
     android:alignmentMode="alignBounds" 
     android:columnOrderPreserved="false" 

     android:columnCount="4" 
     > 

    <TextView 
      android:text="@string/MainTitle" 
      android:textSize="32dip" 
      android:layout_columnSpan="4" 
      android:layout_gravity="center_horizontal" 
      android:id="@+id/textView1" 
      /> 

    <TextView 
      android:text="You can configure email in just a few steps:" 
      android:textSize="16dip" 

      android:layout_columnSpan="4" 
      android:layout_gravity="left" 
      /> 

    <TextView 
      android:text="Email address:" 

      android:layout_gravity="right" 
      /> 

    <EditText 
      android:ems="10" 
      /> 

    <TextView 
      android:text="Password:" 

      android:layout_column="0" 
      android:layout_gravity="right" 
      /> 

    <EditText 
      android:ems="8" 
      /> 

    <Space 
      android:layout_row="4" 
      android:layout_column="0" 
      android:layout_columnSpan="3" 
      android:layout_gravity="fill" 
      /> 

    <Button 
      android:text="Next" 
      android:id="@+id/imageButton1" 
      android:layout_row="5" 
      android:layout_column="3" 
      /> 
</GridLayout> 
+0

Spójrz na m y odpowiedź. Nadal możesz użyć znacznika ''. Nie wymieniaj całości w głównym układzie. – Henry

Odpowiedz

4

spróbować tego w układzie:

<?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=".MainActivity" > 

    <android.support.design.widget.AppBarLayout 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     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/colorPrimary"/> 

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

    <GridLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 

     android:useDefaultMargins="true" 
     android:alignmentMode="alignBounds" 
     android:columnOrderPreserved="false" 

     android:columnCount="4" 
     > 

     <TextView 
      android:text="MainTitle" 
      android:textSize="32dip" 
      android:layout_columnSpan="4" 
      android:layout_gravity="center_horizontal" 
      android:id="@+id/textView1" 
      /> 

     <TextView 
      android:text="You can configure email in just a few steps:" 
      android:textSize="16dip" 

      android:layout_columnSpan="4" 
      android:layout_gravity="left" 
      /> 

     <TextView 
      android:text="Email address:" 

      android:layout_gravity="right" 
      /> 

     <EditText 
      android:ems="10" 
      /> 

     <TextView 
      android:text="Password:" 

      android:layout_column="0" 
      android:layout_gravity="right" 
      /> 

     <EditText 
      android:ems="8" 
      /> 

     <Space 
      android:layout_row="4" 
      android:layout_column="0" 
      android:layout_columnSpan="3" 
      android:layout_gravity="fill" 
      /> 

     <Button 
      android:text="Next" 
      android:id="@+id/imageButton1" 
      android:layout_row="5" 
      android:layout_column="3" 
      /> 
    </GridLayout> 

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

To nie zadziałało. To sprawiło, że rzeczywista zawartość została przesunięta nieco w lewo ... – Alex

+0

edytowałem moją odpowiedź, sprawdź teraz – Aakash

+0

Przypuszczam, że umieściłem to w 'activity_main.xml'? – Alex

52

zastąpić <include layout="@layout/content_main"/> z tym:

<include layout="@layout/content_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
+4

ładne rozwiązanie! ten powinien być zaakceptowaną odpowiedzią. – x4h1d

+0

Świetne .. to działało !! – Manisha

+0

To zadziałało dla mnie.Działa również, aby dodać rzecz layout_behavior w "content_main", mam na myśli, w dołączonym pliku zamiast action_main – Jahaziel

6

Dodaj do tego widoku poniżej paska narzędzi

app:layout_behavior="@string/appbar_scrolling_view_behavior" 
2

Wystarczy prosta zmiana załatwiło sprawę.

mój poprzedni kod:

activity_device_scan.xml

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

New

activity_device_scan.xml:

<include layout="@layout/content_device_scan" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
Powiązane problemy