ActionBar
- 引用v7-appcompat
- Activity继承AppcompatActivity
- android:theme=”@style/Theme.AppCompat.Light” >
返回按钮的处理
1 Activity类中写下一下代码,获取actionBar,添加返回按钮
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
2 AndroidManifest.xml中添加一下代码,其中android:parentActivityName表示当前Activity的上一个Activity
<activity android:name=".DetailActivity"
android:label="@string/app_detail"
android:parentActivityName="com.itheima.googleplay.MainActivity"
>
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.itheima.googleplay.MainActivity" />
</activity>
实现ActionBar Tab标签
1 在Drawable 目录下 写了一个标签的状态选择器
2 实现自定义主题
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarTabStyle">@style/MyActionBarTabs</item>
<!-- Support library compatibility -->
<item name="actionBarTabStyle">@style/MyActionBarTabs</item>
</style>
<!-- ActionBar tabs styles -->
<style name="MyActionBarTabs"
parent="@style/Widget.AppCompat.ActionBar.TabView">
<!-- tab indicator -->
<item name="android:background">@drawable/actionbar_tab_indicator</item>
<!-- Support library compatibility -->
<item name="background">@drawable/actionbar_tab_indicator</item>
</style>
</resources>
3 在代码里添加标签,与ViewPager一起使用
ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab tab1=actionBar.newTab().setText("标签一").setTabListener(new MyTabListener());
actionBar.addTab(tab1);
//viewPager
init(){
mViewPager = (ViewPager) findViewById(R.id.vp);
mViewPager.setAdapter(new MainAdapter(fm));
//设置ViewPager的SimpleOnPageChangeListener
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener(){
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
getActionBar().setSelectedNavigationItem(position);//滑动时Page改变与Tab变化同步
}
});
}
private class MainAdapter extends FragmentStatePagerAdapter {
public MainAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public Fragment getItem(int position) {
/*switch(position){
case 0 : return new HomeFragment();
case 1 : return new AppFragment();
case 2 : return new GameFragment();
case 3 : return new SubjectFragment();
case 4 : return new CategoryFragment();
case 5 : return new TopFragment();
default : return null;
}*/
return FragmentFactory.createFragment(position);
}
@Override
public int getCount() {
return tabNames.length;
}
@Override
public CharSequence getPageTitle(int position) {
return tabNames[position];
}
}
//接上面的TabListener接口
private class MyTabListener implements ActionBar.TabListener{
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
mViewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
}
//最后别忘了在布局文件里加上ViewPager组件
<android.support.v4.view.ViewPager
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:id="@+id/vp"
>