web-dev-qa-db-ja.com

コーディネーターのレイアウト、ツールバーの下のアクティビティ

スライディングタブとビューページャーをコーディネーターレイアウトで使用するコーディネーターレイアウトのアプリがあります。ツールバーの下にアクティビティ(リスト)を配置しようとしています。さまざまなことを試しましたが、リストは常にツールバーと重なっています。

レイアウト

<?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">

    <LinearLayout 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="wrap_content"
        Android:orientation="vertical" >

        <Android.support.v7.widget.Toolbar
            Android:id="@+id/toolbar"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:background="?attr/colorPrimary"
            Android:fitsSystemWindows="true"
            Android:minHeight="?attr/actionBarSize"
            Android:padding="2dp"
            app:titleMarginStart="20dp"
            Android:theme="@style/AppTheme.AppBarOverlay"/>

        <com.passwordstore.utility.SlidingTabLayout
            Android:id="@+id/tabs"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:background="@color/colorPrimary" />

        <View
            Android:layout_width="match_parent"
            Android:layout_height="4dp"
            Android:background="@Android:color/white"
            Android:foreground="@drawable/shadow"/>

       <Android.support.v4.view.ViewPager
            Android:id="@+id/pager"
            Android:layout_width="match_parent"
            Android:layout_height="0dp"
            Android:layout_weight="1">
        </Android.support.v4.view.ViewPager>

    </LinearLayout>

    <FrameLayout Android:layout_width="match_parent" Android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" Android:id="@+id/frameLayout">

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

    </FrameLayout>

    <Android.support.design.widget.FloatingActionButton Android:id="@+id/fabNew"
        Android:layout_width="wrap_content" Android:layout_height="wrap_content"
        Android:layout_margin="@dimen/fab_margin" Android:src="@drawable/ic_add_white_24dp"
        app:layout_anchor="@+id/pager"
        app:layout_anchorGravity="bottom|right|end"/>

</Android.support.design.widget.CoordinatorLayout>
10
Carl

ツールバーの下にある必要があるレイアウトにapp:layout_behavior="@string/appbar_scrolling_view_behavior"を追加するだけです

23
SpyZip

これを試してください:

<?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:id="@+id/appbar"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:fitsSystemWindows="true">

        <Android.support.v7.widget.Toolbar
            Android:id="@+id/toolbar"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:background="?attr/colorPrimary"
            Android:fitsSystemWindows="true"
            Android:minHeight="?attr/actionBarSize"
            Android:padding="2dp"
            app:titleMarginStart="20dp"
            Android:theme="@style/AppTheme.AppBarOverlay"/>

        <com.passwordstore.utility.SlidingTabLayout
            Android:id="@+id/tabs"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:background="@color/colorPrimary" />

        <View
            Android:layout_width="match_parent"
            Android:layout_height="4dp"
            Android:background="@Android:color/white"
            Android:foreground="@drawable/shadow"/>

       <Android.support.v4.view.ViewPager
            Android:id="@+id/pager"
            Android:layout_width="match_parent"
            Android:layout_height="0dp"
            Android:layout_weight="1">
        </Android.support.v4.view.ViewPager>

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

    <FrameLayout Android:layout_width="match_parent" Android:layout_height="match_parent"
    Android:layout_below= "@id/appbar"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" Android:id="@+id/frameLayout">

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

    </FrameLayout>

    <Android.support.design.widget.FloatingActionButton Android:id="@+id/fabNew"
        Android:layout_width="wrap_content" Android:layout_height="wrap_content"
        Android:layout_margin="@dimen/fab_margin" Android:src="@drawable/ic_add_white_24dp"
        app:layout_anchor="@+id/pager"
        app:layout_anchorGravity="bottom|right|end"/>

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

linearLayoutを削除し、appBarLayoutに置き換え、Android:layout_belowFramelayoutに追加しました

幸運を

3
Netero

CoordinatorLayoutをLinearLayoutに置き換えることができます(Android:orientation = "vertical"を使用)。

<RelativeLayout>
    <LinearLayout> (replaces the coordinator layout>
        <AppBarLayout/>
        <FrameLayout/>
    </LinearLayout>
    <FloatingActionButton/>
</RelativeLayout>
0
Fundhor