我是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>
我的问题是,我们可以使用<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>
并完全删除<RelativeLayout>
。因此,我们不仅仅为FAB使用</android.support.design.widget.CoordinatorLayout>
,而是将其用于整个活动。由于CoordinatorLayout专注于使儿童观点协调工作,如果所有元素彼此协调工作,这不是更好吗?无论采用哪种方式,有哪些优点和缺点?
答案 0 :(得分:4)
CoordinatorLayout相对较新,它解决了FloatingActionButton和NavDrawer的许多问题。因此,如果你必须拥有FAB或NavDrawer,我肯定会建议从现在开始使用CoordinatorLayout作为你的顶层布局(你的最后一个代码片段),在其中你可以使用RelativeLayout或LinearLayout进行更精细化。