Android ToolBar控件详解及实例

Android ToolBar控件详解及实例,第1张

概述ToolBar控件详解在Activity中添加ToolBar1.添加库dependencies{...compile\"com.android.support:appcompat-v7:18.0.+\"

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.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"/>

Material Design specification 建议设置 elevation 为 4dp

Toolbar放在Activity的顶部(等于废话)

5.设置Toolbar

在Activity的onCreate()方法中,调用setSupportActionbar()方法,把我们的Toolbar对象传递进去,将我们xml中添加的Toolbar设置为我们这个Activity页面的App bar。

@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentVIEw(R.layout.activity_my);  Toolbar myToolbar = (Toolbar) findVIEwByID(R.ID.my_toolbar);  setSupportActionbar(myToolbar);  }

现在,我们的页面中,应该就会有一个App bar了,默认情况下,这个App bar只会显示一个App的名字和一个带有下拉选项的按钮,也可以在App bar上添加更多的选项按钮

添加并处理一个Action

Toolbar允许在上面添加 *** 作按钮,但是因为Toolbar上空间是有限的,如果一个程序有太多的Action,那么可以将Action添加到下拉菜单中,而不显示在Toolbar上

添加一个Action按钮

可以在XML文件中定义所有我们想添加的 *** 作按钮和下拉列表中的行为,如果想要添加Action,可以在 res/目录下创建一个新的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 属性是用来设置Action显示在哪,如果我们设置 app:showAsAction =”ifRoom”(示例中最常用的一种方式) ,这个Action将显示在Toolbar上,如果Toolbar上没有足够的控件,则显示在下拉菜单中。如果在程序中设置为 app:showAsAction=”never”,那么这个Action将永远显示在下拉列表中,而不会显示在Toolbar上。
响应 *** 作(回调)

当用户选择了一个Action后,系统会回调 onoptionsItemSelected() 方法并传递 MenuItem 对象,在 onoptionsItemSelected() 的实现中,调用 MenuItem.getItemID() 方法来确定按下了哪个项目。返回的 ID 与您在相应的 元素 AndroID: ID 属性中声明的值匹配。

例如下面

@OverrIDepublic boolean onoptionsItemSelected(MenuItem item) {  switch (item.getItemID()) {    case R.ID.action_settings:      // User chose the "Settings" item,show the app settings UI...      return true;    case R.ID.action_favorite:      // User chose the "Favorite" action,mark the current item      // as a favorite...      return true;    default:      // If we got here,the user's action was not recognized.      // Invoke the superclass to handle it.      return super.onoptionsItemSelected(item);  }}

添加一个回到主界面的按钮

应用为了使用户可以方便的回到主界面,Toolbar可以添加一个按钮,直接返回到指定的主界面。

声明主界面(父界面)

需要在清单文件中通过设置 androID: parentActivityname 属性声明,如果要支持旧版本的AndroID设备,需要定义 ,类似这样:

<application ... >  ...  <!-- The main/home activity (it has no parent activity) -->  <activity    androID:name="com.example.myfirstapp.MainActivity" ...>    ...  </activity>  <!-- A child of the main activity -->  <activity    androID:name="com.example.myfirstapp.MyChildActivity"    androID:label="@string/Title_activity_child"    androID:parentActivityname="com.example.myfirstapp.MainActivity" >    <!-- Parent activity Meta-data to support 4.0 and lower -->    <Meta-data      androID:name="androID.support.PARENT_ACTIVITY"      androID:value="com.example.myfirstapp.MainActivity" />  </activity></application>

使用返回按钮

若要使用返回的按钮,需要调用setdisplayHomeAsUpEnabled()方法,类似这样:

@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentVIEw(R.layout.activity_my_child);  // my_child_toolbar is defined in the layout file  Toolbar myChildToolbar =    (Toolbar) findVIEwByID(R.ID.my_child_toolbar);  setSupportActionbar(myChildToolbar);  // Get a support Actionbar corresponding to this toolbar  Actionbar ab = getSupportActionbar();  // Enable the Up button  ab.setdisplayHomeAsUpEnabled(true);}

添加Action VIEws

和上面 添加并处理一个Action 类似,只不过设置 showAsAction 为 “ifRoom|collapseActionVIEw” 或者 “never|collapseActionVIEw” 就可以了,类似这样

<item androID:ID="@+ID/action_search"   androID:title="@string/action_search"   androID:icon="@drawable/ic_search"   app:showAsAction="ifRoom|collapseActionVIEw"   app:actionVIEwClass="androID.support.v7.Widget.SearchVIEw" />

这里我们添加的是一个带有搜索功能的Search按钮,如果我们要自定义一个自己的按钮,不添加 actionVIEwClass 即可

如果想要配置这个Action,可以在 onCreateOptionsMenu() 的回调里通过 getActionVIEw() 获取到Search对象,类似这样:

@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) {  getMenuInflater().inflate(R.menu.main_activity_actions,menu);  MenuItem searchItem = menu.findItem(R.ID.action_search);  SearchVIEw searchVIEw = (SearchVIEw) MenuItemCompat.getActionVIEw(searchItem);  // Configure the search info and add any event Listeners...  return super.onCreateOptionsMenu(menu);6 }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

总结

以上是内存溢出为你收集整理的Android ToolBar控件详解及实例全部内容,希望文章能够帮你解决Android ToolBar控件详解及实例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1146639.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存