Android开发学习之初识ActionBar
ActionBar,即操作栏,根据Android官方给出的描述:操作栏是一个窗口功能,可识别用户位置,并提供用户操作和导航模式。使用操作栏提供您的用户不同应用程序中熟悉的界面,该系统优雅地适应不同的屏幕配置。我们首先来看看一个一般情况下的操作栏的结构,首先应用程序将整个操作栏分为四个区域,分别是:1、应用程序图标 2、查看控制 3、动作按钮 4、动作溢出
vcq90aHU8bK7zay1xMrTzbzS1OSvwMCyu82stcTK/b7do7u2r9f3sLTFpc/Uyr7Ev8ew06bTw7PM0PLW0NfuzqrW2NKqtcSy2df3o7u2r9f30uez9tTyyse9q7K7s6PTw7XEuabE3NLGs/ay2df3wLiho9TastnX98C41tDX7s6q0v3Iy9eixL+1xLmmxNzTprjDysfE3Lm71NrGwcS70P3XqrXEuf2zzNbQ19S2r8rK06ZVSSzV4tLizrbXxc7Sw8e1xNOm08OzzNDyvau+37G4uPy6w7XEvObI3dDUoaPT2rTLzazKsaOszai5/cCp1blBY3Rpb25CYXKjrM7Sw8e/ydLUyrXP1ralsr+horXXsr+6zVRhYrXEstnX98C4o6zV4tH5vs2/ydLUvajBosbwzbPSu7XEQW5kcm9pZNOm08O35yYjMjY2ODQ7oaPPwsPmztLDx77NwLTRp8+w1NrX1Ly6tcTTptPDs8zQ8tbQyrnTw0FjdGlvbkJhcqOszai5/c/Cw+a1xMD919OjrM7Sw8fE3Lm70afPsLW9o7o8L3A+CjxwPiAgICAgICAgICAgICAgMaGitLS9qNGhz+6yy7WloaLJz8/CzsSyy7WlPC9wPgo8cD4gICAgICAgICAgICAgIDKhorS0vaiy2df3wLg8L3A+CjxwPiAgICAgICAgICAgICAgM6Giz9TKvrrN0v6y2LLZ1/fAuDwvcD4KPHA+ICAgICAgICAgICAgICDK18/IwLS/tL+01+7W1cq1z9a1xNCnufuwyaOhPC9wPgo8cD4gICAgICAgICAgICA8aW1nIHNyYz0="http://www.vm888.com/uploadfile/Collfiles/20131210/2013121014065852.png" alt="/">
界面布局大家已经看到了,直接给出布局代码吧:
相信大家都知道如何创建菜单吧,在今天的例子中,我们将一次学会ActionBar和菜单的创建,因为两者创建的方式都是一样的,唯一不同的地方是需要setShowAsAction()方法来设置菜单项的属性,如果有这个属性,就会显示为ActionBar,没有这个属性就会显示为菜单,我们一起来看代码:
package com.Android.ActionBar;import android.os.Bundle;import android.app.ActionBar;import android.app.Activity;import android.view.ContextMenu;import android.view.ContextMenu.ContextMenuInfo;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity { private Button BtnLongPress; private Button BtnShow; private Button BtnHide; private ActionBar mActionBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //取得操作栏 mActionBar=getActionBar(); //获取界面实例 BtnLongPress=(Button)findViewById(R.id.BtnLongPress); registerForContextMenu(BtnLongPress); //显示和隐藏ActionBar BtnShow=(Button)findViewById(R.id.BtnShow); BtnShow.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mActionBar.show(); } }); BtnHide=(Button)findViewById(R.id.BtnHide); BtnHide.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mActionBar.hide(); } }); } /* * 选项菜单响应 */ @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case 0: Toast.makeText(this, "你选择了编辑菜单", Toast.LENGTH_SHORT).show(); break; case 1: Toast.makeText(this, "你选择了搜索菜单", Toast.LENGTH_SHORT).show(); break; case 2: Toast.makeText(this, "你选择了刷新菜单", Toast.LENGTH_SHORT).show(); break; } return super.onOptionsItemSelected(item); } /* * 添加选项菜单 * 用于ActionBar的选项菜单 */ @Override public boolean onCreateOptionsMenu(Menu menu) { /* * 普通的ActionBar项目,有空间则显示 */ menu.add(0,0,1,"编辑") .setIcon(R.drawable.ic_editor_white). setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); /* * 可以折叠的ActionBar项目 */ menu.add(0,1,2,"搜索") .setIcon(R.drawable.ic_search_white) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS|MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); menu.add(0,2,3,"刷新") /* * * 显示文本的ActionBar项目 */ .setIcon(R.drawable.ic_refresh_white) .setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT); return true; } /* * 添加上下文菜单 */ @Override public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) { menu.add(0,1,0,"选项1"); menu.add(0,2,1,"选项2"); menu.add(0,3,2,"选项3"); menu.add(0,4,3,"选项4"); } /* * 上下文菜单响应 */ @Override public boolean onContextItemSelected(MenuItem item) { switch(item.getItemId()) { case 1: Toast.makeText(this, "你选择了选项1", Toast.LENGTH_SHORT).show(); break; case 2: Toast.makeText(this, "你选择了选项2", Toast.LENGTH_SHORT).show(); break; case 3: Toast.makeText(this, "你选择了选项3", Toast.LENGTH_SHORT).show(); break; case 4: Toast.makeText(this, "你选择了选项4", Toast.LENGTH_SHORT).show(); break; } return super.onContextItemSelected(item); } }在这里,有三个主要的方法:
1、getActionBar()方法获得一个ActionBar实例
2、使用show()和hide()方法来分别显示和隐藏ActionBar
3、通过setShowAsAction()方法来决定显示项目的外观
此外,我们需要将 AndroidManifest.xml文件中的sdk最低版本设为11,这样程序才能顺利运行。
明天要和大家分享的是,如何在ActionBar中使用View视图,即ActionBar的第二部分,以及在拥有物理按键的手机上如何强制显示溢出,今天就是这样啦。
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 03-08消息称微软开发内部AI推理模型,或将成为Op
- 03-08美国法院驳回马斯克请求,未阻止OpenAI转型
- 03-08饿了么成立即时配送算法专家委员会 持续全局
- 03-08长安汽车:预计今年底长安飞行汽车将完成试
- 03-08谷歌推出虚拟试穿、AR美妆新功能