actionbarsherlock的学习记录2(4小时)

好的,新的一天开始了,继续昨天没有完成的任务

----Simple---demo14--

就是告诉你,弄个actionbar有多么的简单,就是在 onCreate加入setTheme(SampleList.THEME);就可以了。

----SplitActionItems---demo15---

这个是一个分享控件,点开之后有一个分享的list,这个list是系统自带的。

onCreate里面调用了copyPrivateRawResourceToPubliclyAccessibleFile();

是吧raw里面的一个文件拷贝到公用路径,让别的应用也可以share它,具体在这个demo里面是做什么的,就不知道了

1,在onCreateOptionMenu里面    getSupportMenuInflater().inflate(R.menu.share_action_provider, menu);

就把supportmenu给设置成share控件了,就可以显示出来了。

2,onCreateOptionMenu里面

    ShareActionProvider actionProvider = (ShareActionProvider) actionItem.getActionProvider();
        actionProvider.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
               actionProvider.setShareIntent(createShareIntent());

 这三行就把动作设置进去了,

ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME是share_history.xml,应该是存档的首选项

这个保存了选择过了哪一些,可以放到前面显示

----SplitActionItems---demo16---

这个和ActionItem代码里面没有什么变化,只是manifest变化了一点点

android:uiOptions="splitActionBarWhenNarrow"

这样子那几个action item就移到了屏幕下面,挺不错的。

 ----SplitActionModes---demo17---

同上:这个和ActionItemModes代码里面没有什么变化,只是manifest变化了一点点

android:uiOptions="splitActionBarWhenNarrow"

  ---- StaticAttachment---demo18---

这个是做什么的呢。

这个呢,就是不继承与ActionBarSherlock,而是直接继承Activity

1,    ActionBarSherlock mSherlock = ActionBarSherlock.wrap(this);

这一步就是把这个Activity和mSherlock 绑定起来,就是这么简单

2,    onCreate里面 mSherlock.setContentView(R.layout.text);


3,implements OnCreateOptionsMenuListener

    并在  public boolean onCreateOptionsMenu(Menu menu) 中加入menuitem

定义ActionBarSherlock 的onCreateOptionsMenu,然后下一步是在Activity的onCreateOptionsMenu关联上,

这样就可以有actionBar

 4, @Override
    public boolean onCreateOptionsMenu(android.view.Menu menu) {
        return mSherlock.dispatchCreateOptionsMenu(menu);
    }

确实是很简单。

如果想要split的actionbar,就在onCreate中加入  mSherlock.setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW);

  ---- Styled---demo19---

只要在manifest中加入android:theme="@style/Theme.Styled"

哎呀,这个文件里的配置信息不少呀,说明可以配置的东西还是挺多的呢。以后做风格的时候,可能需要用到这个。

 就是说,这个页面,很多变量都定义好了,我们只要修改值就可以了。

 同样的,代码里面也可以修改,比如 getSupportActionBar().setBackgroundDrawable(bg);

希望他们能多提供几种风格  

 ----.SubMenus---demo19---

这个demo是actionitem一点,然后弹出一个二级菜单,和长按那个不一样哦。

 如果想添加一个点了可以打开二级菜单的action item,可以使用如下代码

  SubMenu subMenu1 = menu.addSubMenu("Action Item");
        subMenu1.add("Sample");
        subMenu1.add("Menu");
        subMenu1.add("Items");

        MenuItem subMenu1Item = subMenu1.getItem();
        subMenu1Item.setIcon(R.drawable.ic_title_share_default);
        subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

问题是怎么能响应的,这个真的是没有看到。可能是和响应actionbar的一样吧,我都忘记了,回头再找找

   ----TabNavigation---demo20---

让我们来看看tab是怎么加进去的

   getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);//设置模式
        for (int i = 1; i <= 3; i++) {
            ActionBar.Tab tab = getSupportActionBar().newTab();//新建一个tab
            tab.setText("Tab " + i);
            tab.setTabListener(this);//把监听接口加上
            getSupportActionBar().addTab(tab);//add进去,有add就应该有remove吧
        }


ActionBar.TabListener接口下面有3个函数

onTabSelected:tab进入选择状态

onTabUnselected:tab离开选择装填

onTabReselected:tab又被选了

在这里面想做什么做点什么吧

   ---TabNavigationCollapsed---demo20---

这里面的Collapsed具体是什么意思还真不知道。

但是这个页面,就是把TabNavigation去掉home和title

   ---FeatureToggles---demo21---

这个呢,就是把上面的有几个可以加减的操作一下

这个类看起来超多,其实很简单

就是页面上各个空间,只要设置可显示或者Enable就显示出来,false就不显示,例如

 setSupportProgressBarVisibility(true);

   --SampleList---demo22---

好,下面又是我期待的SampleList

1,首先继承与SherlockListActivity,

2,设置内容

 setListAdapter(new SimpleAdapter(this, getData(path),
                android.R.layout.simple_list_item_1, new String[] { "title" },
                new int[] { android.R.id.text1 }));

3,重写onListItemClick方法。

如果想变布局,只要改变布局文件,

这里面 new String[] { "title" }, new int[] { android.R.id.text1 }

意思就是把map里面title给放到第一个textview里面,貌似是这样的,比我们平常用的方法可能简单一些,

但是平时我们都是弄得动态的,这个不知道行不行,感觉不是很实用。


-abs_styled--

以上 abs_demos里面的都完事啦,

然后再看看abs_styled里面是什么情况,这里就一个页面,有3个tab,页面中绿色的可以翻转。

终于找到listNavigation的响应了

    ab.setListNavigationCallbacks(ArrayAdapter
                .createFromResource(this, R.array.sections,
                        R.layout.sherlock_spinner_dropdown_item),
                new OnNavigationListener() {
                    public boolean onNavigationItemSelected(int itemPosition,
                            long itemId) {
                        // FIXME add proper implementation
                        rotateLeftFrag();
                        return false;
                    }
                });

还有翻转效果原来也是一句话搞定

ObjectAnimator.ofFloat(leftFrag.getView(), "rotationY", 0, 180)
                    .setDuration(500).start();

加fragment就是

   FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.add(R.id.root, leftFrag);
        ft.add(R.id.root, rightFrag);
        ft.commit();

----

好吧,今天的学习任务先这样了,明天我想把fragment学习一下,虽然觉得可能平时用不到,

但是感觉框架不错,等学完fragment再把整个框架看看,学习学习里面的巧妙之处。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值