ActionBar

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

2 】getActionBar()获取ActionBar对象
】bar.show();显示
】bar.hide();隐藏
// 设置ActionBar的自定义布局可用.
// bar.setDisplayShowCustomEnabled(true);
// 自定义ActionBar的布局.需要和setDisplayShowCustomEnabled()一起使用
// bar.setCustomView(resId);
// 设置ActionBar的标题不可用
bar.setDisplayShowTitleEnabled(false);
// 设置logo图标可用
bar.setDisplayUseLogoEnabled(true);
// 设置显示Home菜单.
bar.setDisplayShowHomeEnabled(true);
// 使得Home菜单可用.
bar.setHomeButtonEnabled(true);
】android.R.id.home ——-ActionBar上home键id,要在菜单监听事件中响应

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值