导图社区 ActionBar软件操作知识点笔记
ActionBar软件操作知识点笔记、onTabSelected(Tab tab, FragmentTransaction ft)、new FragmentTab();展示效果、Bundle bundle=new Bundle();、HashMap<String,Object> hashMap=new HashMap<String, Object>();
编辑于2022-11-08 15:54:46 广东ActionBar软件操作知识点笔记
目的
目的
突出重要的操作
新建”和“搜索
切换体验
人性化
触摸和操控
减少界面上的杂乱布局
只展示哥所需要的
展示其特点
了解哥
基本布局
干得漂亮
1. 应用图标
应用的标志,logo
2. 视图控制
多个不同的视图显示数据
切换视图
相册选择,小学、中学、大学
3. 操作按钮
我搜QQQ
我按O(≧口≦)O
4. 更多操作
万万没想到,还有
副操作栏
多个操作栏
1. 操作栏
2. 顶部栏
快速切换屏幕和视图
放置标签或者下拉菜单
3. 底部栏
没有足够的空间显示操作图标
神奇get技能
分享
上下文操作栏
contextual action bar,CAB
文字选择
项目选择
知识点
actionBar
得到对象
this.getActionBar();
导航模式
this.actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
点击图标
this.actionBar.setDisplayHomeAsUpEnabled(true);
this.actionBar.setHomeButtonEnabled(true);
选项卡具体菜单
actionBar.newTab()
景点
购物
饮食
……
预算
xxx
显示隐藏等基本应用
layout
button
onclick
main/item
文件
编辑
源码
导航
搜索
Androidmainfest
Activity中切割显示,底标题
MainActivity
1、声明并得到ActionBar对象
this.actionBar = this.getActionBar();
2、定义启用ActionBar上的Home按钮
this.actionBar.setDisplayHomeAsUpEnabled(true)
按应用图标退出
this.actionBar.setHomeButtonEnabled(true);
返回主目录
3、设置ActionBar的导航模式
this.actionBar.setNavigationMode(x)
标准模式
ActionBar.NAVIGATION_MODE_STANDARD
Tab导航
list导航
4、点击事件处理show()
判断当前ActionBar是否显示
boolean isShowing = this.actionBar.isShowing();
if (isShowing) {
((Button) view).setText("显示ActionBar");
// 隐藏ActionBar
this.actionBar.hide();
} else {
((Button) view).setText("隐藏ActionBar");
// 显示ActionBar
this.actionBar.show();
5、选中选项后进行事件响应
onOptionsItemSelected(MenuItem item)
int id = item.getItemId();
switch (id) {
case R.id.action_File:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case R.id.action_Edit:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case R.id.action_Source:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case R.id.action_Navigate:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case R.id.action_Search:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case android.R.id.home:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
this.onBackPressed();
// 销毁当前的Activity,相当于用户按手机上的返回键
break;
tabs选项卡二级导航模式
布局
layout
button
onclick
fragment_tab
text+image
menu
文件
编辑
源码
导航
搜索
MainActivity
……
1、声明并得到ActionBar对象
this.actionBar = this.getActionBar();
2、定义启用ActionBar上的Home按钮
this.actionBar.setDisplayHomeAsUpEnabled(true)
按应用图标退出
this.actionBar.setHomeButtonEnabled(true);
返回主目录
3、设置ActionBar的导航模式
this.actionBar.setNavigationMode(x)
Tab导航
选项卡
生成
this.actionBar.newTab();
setText("File");
setIcon(R.drawable.ic_launcher);
注册监听器对象
tab_file.setTabListener(this.myTabListener);
添加进操作栏
this.actionBar.addTab(tab_file);
自定义选项卡监听器
class MyTabListener implements TabListener
onTabSelected(Tab tab, FragmentTransaction ft)
new FragmentTab();展示效果
Bundle bundle=new Bundle();
HashMap<String,Object> hashMap=new HashMap<String, Object>();
hashMap.put("icon",tab.getIcon());
hashMap.put("title",tab.getText());
bundle.putSerializable("tab",hashMap);
fragmentTab.setArguments(bundle);
ft.replace(R.id.relativeLayout_container, fragmentTab);
onTabUnselected(Tab tab, FragmentTransaction ft)
onTabReselected(Tab tab, FragmentTransaction ft)
选中,不选,重选
挂了,选项卡接口回调,监听器
4、点击事件处理show()
判断当前ActionBar是否显示
boolean isShowing = this.actionBar.isShowing();
if (isShowing) {
((Button) view).setText("显示ActionBar");
// 隐藏ActionBar
this.actionBar.hide();
} else {
((Button) view).setText("隐藏ActionBar");
// 显示ActionBar
this.actionBar.show();
5、选中选项后进行事件响应
onOptionsItemSelected(MenuItem item)
int id = item.getItemId();
switch (id) {
case R.id.action_File:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case R.id.action_Edit:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case R.id.action_Source:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case R.id.action_Navigate:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case R.id.action_Search:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case android.R.id.home:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
this.onBackPressed();
// 销毁当前的Activity,相当于用户按手机上的返回键
break;
FragmentTab
extends Fragment
onCreate
onCreateView()
得到布局
View view=inflater.inflate(R.layout.fragment_tab,null);
ImageView imageView_icon=(ImageView) view.findViewById(R.id.imageView_icon);
TextView textView_title=(TextView) view.findViewById(R.id.textView_title);
获得bundle数据
HashMap<String,Object> hashMap=(HashMap<String, Object>) this.getArguments().get("tab");
Drawable icon=(Drawable) hashMap.get("icon");
String title=hashMap.get("title").toString();
imageView_icon.setImageDrawable(icon);
textView_title.setText(title);
return view;
onPause()
list
MainActivity
1、声明并得到ActionBar对象
this.actionBar = this.getActionBar();
2、定义启用ActionBar上的Home按钮
this.actionBar.setDisplayHomeAsUpEnabled(true)
按应用图标退出
this.actionBar.setHomeButtonEnabled(true);
返回主目录
3、设置ActionBar的导航模式
this.actionBar.setNavigationMode(x)
list导航
NAVIGATION_MODE_LIST
ArrayList折叠
生成list数据源
list.add("文件");
list.add("编辑");
list.add("源码");
list.add("导航");
list.add("搜索");
ArrayAdapter
new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item,list);
用接口回调方式注册监听器对象
this.actionBar.setListNavigationCallbacks(adapter, new OnNavigationListener() {
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
fragmentTransaction = fragmentManager.beginTransaction();
FragmentTab fragmentTab = new FragmentTab();
Bundle bundle = new Bundle();
bundle.putInt("position", itemPosition);
fragmentTab.setArguments(bundle);
fragmentTransaction.replace(R.id.relativeLayout_container, fragmentTab);
fragmentTransaction.commit();
return false;
4、点击事件处理show()
判断当前ActionBar是否显示
boolean isShowing = this.actionBar.isShowing();
if (isShowing) {
((Button) view).setText("显示ActionBar");
// 隐藏ActionBar
this.actionBar.hide();
} else {
((Button) view).setText("隐藏ActionBar");
// 显示ActionBar
this.actionBar.show();
5、选中选项后进行事件响应
onOptionsItemSelected(MenuItem item)
int id = item.getItemId();
switch (id) {
case R.id.action_File:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case R.id.action_Edit:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case R.id.action_Source:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case R.id.action_Navigate:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case R.id.action_Search:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
break;
case android.R.id.home:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
this.onBackPressed();
// 销毁当前的Activity,相当于用户按手机上的返回键
break;
FragmentTab
extends Fragment
onCreate
onCreateView()
得到布局
View view=inflater.inflate(R.layout.fragment_tab,null);
TextView textView_title=(TextView) view.findViewById(R.id.textView_title);
int position=this.getArguments().getInt("position");
switch (position)
case 0:
textView_title.setText("文件");
break;
case 1:
textView_title.setText("编辑");
break;
case 2:
textView_title.setText("源码");
break;
case 3:
textView_title.setText("导航");
break;
case 4:
textView_title.setText("搜索");
break;
return view;
onPause()
share