ActionBar

来源:互联网 发布:linux关闭自启动服务 编辑:程序博客网 时间:2024/05/23 09:47

1去掉标题栏,一定要在setContentView之前写
  requestWindowFeature(Window.FEATURE_NO_TITLE);

2 】getActionBar()获取ActionBar对象
  】bar.show();显示
  】bar.hide();隐藏

3 使用Split action bar
在屏幕很窄时(如在portra模式),使用Split action bar可以将所有的action显示在屏幕底部
】在清单文件中的Activity标签设置属性
    android:uiOptions="splitActionBarWhenNarrow"

4 在ActionBar中使用SearchView

  第一步,在item中关联actionViewClass
<item
    android:id="@+id/actionbar_search"
    android:showAsAction="ifRoom"
    android:title="搜索"
    android:actionViewClass="android.widget.SearchView"/>只能手写

第二步,在onCreateOptionsMenu中找到SearchView并设置监听

MenuItem item=menu.findItem(R.id.actionbar_search);
  SearchView sv=(SearchView) item.getActionView();
  sv.setOnQueryTextListener(new OnQueryTextListener() {
   
   @Override
   public boolean onQueryTextSubmit(String query) {
    return false;
   }
   
   @Override
   public boolean onQueryTextChange(String newText) {
    tv.setText(newText);
//    Toast.makeText(getApplicationContext(), newText, 0).show();
    return false;
   }
  });


5 在ActionBar中使用分享功能

第一步: 在item中关联actionProviderClas

    <item
        android:id="@+id/share"
        android:showAsAction="ifRoom"
        android:title="分享"
        android:actionProviderClass="android.widget.ShareActionProvider"/>

第二步: 在onCreateOptionsMenu中找到ShareActionProvider进行分享功能的设置

getMenuInflater().inflate(R.menu.main,menu);
  MenuItem item=menu.findItem(R.id.share);
  ShareActionProvider ap=(ShareActionProvider) item.getActionProvider();
  Intent intent=new Intent();
  intent.setAction(Intent.ACTION_SEND);
  intent.setType("text/plain");
  intent.putExtra(Intent.EXTRA_TEXT, "穿过来的数据");
   //通过setShareIntent开启数据的共享
  ap.setShareIntent(intent);
】如果要在自己其它的应用A也想分享该应用B的数据,需要在A的配置文件中过滤相同Intent属性
  <intent-filter >
                <action android:name="android.intent.action.SEND"/>
                <data android:mimeType="text/plain"/>
            </intent-filter>


6 使用ActionBar向上导航(跳转到指定Activity,)
】注意:比如A-B-C-D依次跳转,只能是下一级Activity向上跳转,
      如 D—A
】使用步骤1: //在D中设置向上导航可用
  bar.setDisplayHomeAsUpEnabled(true);
步骤2:在D的清单文件中设置父Activity
 android:parentActivityName="com.example.demo.A"


7 使用ActionBar实现Tab导航
】步骤
 //获取ActionBar对象
  ActionBar bar = getActionBar();

  // 导航模式:必须设置.
  bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

  // 获取tab标签
  Tab tab1 = bar.newTab();
  // 添加标题
  tab1.setText("爱情片");
  // 添加页签的图片
  tab1.setIcon(R.drawable.ic_launcher);
  // tab必须添加监听
  tab1.setTabListener(this);
  // 添加标签
  bar.addTab(tab1);

  bar.addTab(bar.newTab().setText("动作片").setTabListener(this));


/************************** TabListener的监听方法 *************************************/

 // 当tab被选择的时候调用.tab:当前被选择的标签;ft:用来管理fragment的事务.
 @Override
 public void onTabSelected(Tab tab, FragmentTransaction ft) {

  MyFragment fragment = new MyFragment();
  Bundle args = new Bundle();
  // tab.getPosition():获取tab所在的位置.从0开始.
  args.putInt("position", tab.getPosition());
  fragment.setArguments(args);
  //ft.add(R.id.ll_container, fragment);
  ft.replace(R.id.ll_container, fragment);
 }

8 在ActionBar中使用List导航

 List<String> l=new ArrayList();
  l.add("list1");
  l.add("list2");
  l.add("list3");
  ActionBar bar=getActionBar();
  //设置导航模式为List
  bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
  //填充适配器
  ArrayAdapter<String> adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,l);
  //设置监听  
  bar.setListNavigationCallbacks(adapter, new OnNavigationListener() {
   
   @Override
   public boolean onNavigationItemSelected(int itemPosition, long itemId) {
    return false;
   }
  });

 

0 0
原创粉丝点击