ToolBar控件详解 在Activity中添加ToolBar 1.添加库 dependencies { ... compile com.android.support:appcompat-v7:18.0.+ } 2.Activity要继承AppCompatActivity 3.设置主题 使用ToolBar,要将系统默认的ActionBar隐藏掉 <application android:theme=@style/Theme.AppCompat.Light.NoActionBar > 4.在XML添加ToolBar布局 <android.support. Android的ToolBar控件是自Android Lollipop版本引入的,它作为对传统ActionBar的增强和替代,提供了更加灵活的定制选项,符合Material Design的设计规范。ToolBar不仅具有与ActionBar类似的功能,如展示应用图标、标题和操作按钮,还允许开发者通过自定义布局来实现更丰富的界面效果。下面将详细讲解如何在Activity中集成并使用ToolBar。 为了使用ToolBar,我们需要在项目的build.gradle文件的dependencies块中添加对appcompat-v7库的支持,具体如下: ```groovy dependencies { ... implementation 'com.android.support:appcompat-v7:版本号' } ``` 这里的版本号应替换为你当前使用的Android Support Library对应的版本。 由于ToolBar是AppCompatActivity的一部分,因此,你的Activity需要继承自AppCompatActivity而非普通的Activity。这样做可以让Activity支持新的Material Design组件,包括ToolBar。 接着,为了使用ToolBar而不是系统默认的ActionBar,你需要在应用程序的主题中进行设置。在res/values/styles.xml文件中,创建或修改主题如下: ```xml <application android:theme="@style/Theme.AppCompat.Light.NoActionBar"> </application> ``` 这样,你的应用就不会显示默认的ActionBar,而是准备使用自定义的ToolBar。 接下来,你需要在布局XML文件中添加ToolBar的定义。以下是一个基本的ToolBar布局示例: ```xml <android.support.v7.widget.Toolbar android:id="@+id/my_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> ``` 其中,`android:elevation`属性设置阴影深度,通常按照Material Design的建议设置为4dp。`android:theme`和`app:popupTheme`用于控制ToolBar的样式和弹出菜单的样式。 在Activity的onCreate()方法中,你需要找到Toolbar并将其设置为Activity的App Bar: ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar); } ``` 这样,ToolBar就被设置成了Activity的顶级布局,显示在屏幕的顶部。 为了在ToolBar上添加操作按钮,你可以在res/menu目录下创建一个XML文件,定义菜单项。例如: ```xml <menu xmlns:android="http://schemas.android.com/apk/res/android"> <!-- "Mark Favorite", should appear as action button if possible --> <item android:id="@+id/action_favorite" android:icon="@drawable/ic_favorite_black_48dp" android:title="@string/action_favorite" app:showAsAction="ifRoom"/> <!-- Settings, should always be in the overflow --> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="never"/> </menu> ``` `app:showAsAction`属性决定菜单项是在ToolBar上显示还是在下拉菜单中。"ifRoom"表示如果有空间则显示,"never"则始终将其置于下拉菜单中。 为了响应用户的点击操作,你需要重写Activity的onOptionsItemSelected()方法: ```java @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_favorite: // 处理收藏操作 break; case R.id.action_settings: // 处理设置操作 break; default: return super.onOptionsItemSelected(item); } return true; } ``` 在这个方法中,你可以根据item.getItemId()判断用户选择了哪个菜单项,并执行相应的操作。 Android的ToolBar控件为开发者提供了更多自定义和扩展Action Bar的能力,使得应用的界面更加符合Material Design风格,同时也提高了用户体验。通过合理地配置和使用,你可以在应用中创建功能丰富且美观的顶部导航栏。
- 粉丝: 4
- 资源: 935
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助