我已经阅读了与AppCompat库中的工具栏及其所有功能相关的内容。在Android开发者博客(这里),我注意到一些事情:
工具栏在AppCompat中得到了充分支持,并且具有与框架小部件相同的功能和API。
他们还提到,我们可以更好地控制它的外观和表现。
但是,在Android Studio中添加活动时,我得到了这个:
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar_add_contacts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
这里的工具栏是在应用栏内部。(ActionBar和AppBar是相同的,对吧?)那有什么用呢?在某些博客中还可以用设计支持库的工具栏替换AppBar。
通常情况下,在工具栏后面会得到content_layout,因此我们将在工具栏之后拥有以下行:
<include layout="@layout/content_myactivity" />
我曾经遇到一个问题,就是当我使用工具栏(而不是放在应用栏中)时,内容位于工具栏之上并且可以被点击,导致整个工具栏被隐藏。因此,我必须在代码中将工具栏移动到内容下方,以便它出现在我的内容上方。
那么,要使用什么?工具栏?AppBarLayout?AppBarLayout中的工具栏?
每个组件的预期用途是什么?
更新:
我已经在activity_layout文件中添加了工具栏。那么为什么需要使用 setSupportActionBar(toolbar);
来设置工具栏,并添加主题 AppTheme.NoActionBar
呢?这是Android Studio中所有活动的正常行为。
禁用窗口操作栏的用途是什么?
<item name="windowActionBar">false</item>
如何使用setSupportActionBar(toolbar)
进行设置?