Android 工具栏 + 操作栏
Android toolbar + actionbar
我正在使用 Appcompat 库在我的 ActionBarActivity 中获取 supportActionBar。现在我面临着另一个挑战,它是如何在该操作栏下添加工具栏,就像 facebook 应用程序一样。有什么想法吗?
我相信他们实现了类似于滑动表格布局的东西。看看这个 link,Google 开发人员文档有它的示例代码。
只需在布局中添加 android.support.v7.widget.Toolbar activity 但不要在 onCreate() 中调用 setActionBar(Toolbar)。工具栏可以在其中包含普通视图,例如按钮、TextView 等,您可以使用通常的 findViewById() 获取句柄。
toolbar.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar 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:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/bg_gradient_start"
app:contentInsetEnd="0dp"
app:contentInsetStart="0dp">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/toolbarBackButton"
android:layout_width="72dp"
android:layout_height="48dp"
android:layout_gravity="left|center_vertical"
android:background="@android:color/transparent"
android:text="@string/back"
android:textColor="@drawable/button_text_color" />
<TextView
android:id="@+id/toolbarTitleText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
tools:text="Title" />
<Button
android:id="@+id/toolbarNextButton"
android:layout_width="72dp"
android:layout_height="48dp"
android:layout_gravity="right|center_vertical"
android:background="@android:color/transparent"
android:text="@string/next"
android:visibility="gone"
tools:visibility="visible"
android:textColor="@drawable/button_text_color" />
</FrameLayout>
</android.support.v7.widget.Toolbar>
在activity_main.xml我有
<include layout="@layout/toolbar" />
然后在您的 onCreate() 中,您可以 findViewById(R.id.toolbarBackButton)
或您想要使用的任何 id,与其他视图相同。
调用 setSupportActionBar(toolbar)
后,您同意将 ActionBar
替换为 Toolbar
。我相信 Facebook 应用程序使用滑动 Tab,而不是 Toolbar
下面的 ActionBar
,但他们将其设计得尽可能漂亮。 Android只允许我们设置一个ActionBar
,不能再多了。认为您覆盖 onCreateOptionsMenu
,Menu
项目将放置在哪里?
我正在使用 Appcompat 库在我的 ActionBarActivity 中获取 supportActionBar。现在我面临着另一个挑战,它是如何在该操作栏下添加工具栏,就像 facebook 应用程序一样。有什么想法吗?
我相信他们实现了类似于滑动表格布局的东西。看看这个 link,Google 开发人员文档有它的示例代码。
只需在布局中添加 android.support.v7.widget.Toolbar activity 但不要在 onCreate() 中调用 setActionBar(Toolbar)。工具栏可以在其中包含普通视图,例如按钮、TextView 等,您可以使用通常的 findViewById() 获取句柄。
toolbar.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar 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:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/bg_gradient_start"
app:contentInsetEnd="0dp"
app:contentInsetStart="0dp">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/toolbarBackButton"
android:layout_width="72dp"
android:layout_height="48dp"
android:layout_gravity="left|center_vertical"
android:background="@android:color/transparent"
android:text="@string/back"
android:textColor="@drawable/button_text_color" />
<TextView
android:id="@+id/toolbarTitleText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
tools:text="Title" />
<Button
android:id="@+id/toolbarNextButton"
android:layout_width="72dp"
android:layout_height="48dp"
android:layout_gravity="right|center_vertical"
android:background="@android:color/transparent"
android:text="@string/next"
android:visibility="gone"
tools:visibility="visible"
android:textColor="@drawable/button_text_color" />
</FrameLayout>
</android.support.v7.widget.Toolbar>
在activity_main.xml我有
<include layout="@layout/toolbar" />
然后在您的 onCreate() 中,您可以 findViewById(R.id.toolbarBackButton)
或您想要使用的任何 id,与其他视图相同。
调用 setSupportActionBar(toolbar)
后,您同意将 ActionBar
替换为 Toolbar
。我相信 Facebook 应用程序使用滑动 Tab,而不是 Toolbar
下面的 ActionBar
,但他们将其设计得尽可能漂亮。 Android只允许我们设置一个ActionBar
,不能再多了。认为您覆盖 onCreateOptionsMenu
,Menu
项目将放置在哪里?