【问题标题】:android: Which practice is better for using CoordinatorLayoutandroid:哪种做法更适合使用 CoordinatorLayout
【发布时间】:2015-12-31 08:52:00
【问题描述】:

我是 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>

我看到其他人这样添加 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>

我的问题是,我们可以使用&lt;android.support.design.widget.CoordinatorLayout&gt; 作为所有元素的根吗?完全绕过或删除&lt;RelativeLayout&gt;

于是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>

并且&lt;RelativeLayout&gt; 被完全删除。因此,我们不仅仅将&lt;/android.support.design.widget.CoordinatorLayout&gt; 用于 FAB,而是将其用于整个活动。由于 CoordinatorLayout 专注于使子视图协调工作,如果所有元素相互协调工作不是更好吗?两种方式都有什么优缺点?

【问题讨论】:

标签: android xml android-layout material-design


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2017-04-11
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    相关资源
    最近更新 更多