好的,新的一天开始了,继续昨天没有完成的任务
----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再把整个框架看看,学习学习里面的巧妙之处。