2014-11-10 2 views
7

Недавно я начал возиться с новыми компонентами AppCompat 21 и реализовать Material Design. В настоящее время у меня есть ActionBarActivity с панелью инструментов, и я пытаюсь, чтобы он размещал фрагмент, содержащий RecyclerView элементов TextView (просто для проверки Recycler). У меня есть пункты будут отображаться, но текст в каждом представлении отрезан и вся Ресайклер покрывает панель инструментов следующим образом:Содержание фрагментов накладывается Панель инструментов

e description here

Как вы можете видеть, есть три TextViews. Их текст отключен на полпути, и он накладывается на панель инструментов (нет названия, которое я знаю). Макеты элементов TextView содержатся в макете RecyclerView, который является макетом фрагмента. Родительская активность имеет FrameLayout -> Панель инструментов, FrameLayout. Я вставляю фрагмент в подкадровый режим ActivityLayout. Вот XML:

Каждый вид в Recycler:

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/textview" 
    android:layout_width="match_parent" 
    android:layout_height="48dp" 
    android:fontFamily="sans-serif" 
    android:paddingTop="16dp" 
    android:paddingBottom="20dp" 
    android:textSize="16sp"/> 

Формуляром Recycler, который является расположение фрагмента:

<android.support.v7.widget.RecyclerView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/recycler_tasks" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="stuff.MainActivity$TaskFragment"> 
</android.support.v7.widget.RecyclerView> 

И расположение родительского Activity в:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" 
    tools:ignore="MergeRootFrame"> 

    <android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:minHeight="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

    <FrameLayout 
    android:id="@+id/fragment_container" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 

</FrameLayout> 

Я знаю, что это должно быть что-то простое, но я некоторое время был на него напуган, пытаясь разными вещами, чтобы не ava ил.

ответ

8

Использовать RelativeLayout вместо FrameLayout в качестве верхнего родителя. Затем просто добавьте зависимости, такие как layout_above для Toolbar или layout_below для контейнера фрагментов.

21

Пожалуйста, не забудьте добавить приложение: layout_behavior = «@ строка/appbar_scrolling_view_behavior» в макете контента

<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

    <android.support.v7.widget.Toolbar 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:layout_scrollFlags="scroll|enterAlways" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

     <android.support.design.widget.TabLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

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

    <android.support.v4.view.ViewPager 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

Это должно быть правильным ответом ... – josemigallas

Смежные вопросы