android:哪种做法更适合使用CoordinatorLayout

Ans*_*yas 10 xml android android-layout material-design

我是android的材料设计方面的新手.所以,请耐心等待.我尝试为我的家庭活动实施FAB,然后实施了零食吧.当然,它高于我的FAB.我研究过CoordinatorLayout,让我困扰的是使用CoordinatorLayout更好的做法是什么?

例如,这是我的活动的xml.

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/primary_color"></android.support.v7.widget.Toolbar>


        <android.support.design.widget.FloatingActionButton
            android:id="@+id/searchfab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="20dp"
            android:layout_marginRight="20dp"
            android:src="@drawable/ic_add_black_24dp"
            app:fabSize="normal">

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

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我看到其他人像这样添加CoordinatorLayout.

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/primary_color"></android.support.v7.widget.Toolbar>

    <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/searchfab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginBottom="20dp"
            android:layout_marginRight="20dp"
            android:src="@drawable/ic_add_black_24dp"
            app:fabSize="normal">

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

    </android.support.design.widget.CoordinatorLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我的问题是,我们可以将其<android.support.design.widget.CoordinatorLayout>作为所有元素的根源.完全绕过或删除<RelativeLayout>.

所以xml变成这样.

    <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

        <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/primary_color">

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/searchfab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginBottom="20dp"
            android:layout_marginRight="20dp"
            android:src="@drawable/ic_add_black_24dp"
            app:fabSize="normal">

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

    </android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

<RelativeLayout>完全删除.因此</android.support.design.widget.CoordinatorLayout>,我们不仅仅使用FAB,而是将其用于整个活动.由于CoordinatorLayout专注于使儿童观点协调工作,如果所有元素彼此协调工作,这不是更好吗?无论采用哪种方式,有哪些优点和缺点?

Dav*_*d A 5

CoordinatorLayout相对较新,它解决了FloatingActionButton和NavDrawer的许多问题。因此,如果您必须具有FAB或NavDrawer,我绝对建议您从现在开始使用CoordinatorLayout作为您的顶级布局(您的最后一个代码片段),在其中可以使用RelativeLayout或LinearLayout进行更细化。