android 应用架构随笔五(ActionBar与侧滑菜单DrawerLayout)
2016-11-18 20:50
405 查看
ActionBar(V7)的添加非常简单,只需要在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类就可以了,在Android 3.0及更高的版本中,Activity中都默认包含有ActionBar组件。
drawerLayout(V4)是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现)。
MainActivity
drawerLayout(V4)是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现)。
import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.Menu; import com.heima.googleplay.fragment.AppFragment; import com.heima.googleplay.fragment.BaseFragment; import com.heima.googleplay.fragment.FragmentFactory; import com.heima.googleplay.fragment.GameFragment; import com.heima.googleplay.fragment.HomeFragment; import com.heima.googleplay.utils.UIUtils; import com.heima.googleplay.widget.PagerTab; public class MainActivity extends BaseActivity implements OnPageChangeListener { private PagerTab mTabs; private ViewPager mPager; @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } private class MainAdapter extends FragmentStatePagerAdapter{ private String[] tab_names; private BaseFragment fragment; public MainAdapter(FragmentManager fm) { super(fm); tab_names = UIUtils.getStringArray(R.array.tab_names); } @Override public CharSequence getPageTitle(int position) { // TODO Auto-generated method stub return tab_names[position]; } @Override public Fragment getItem(int position) { return FragmentFactory.createFragment(position); } @Override public int getCount() { // TODO Auto-generated method stub return tab_names.length; } } @Override protected void initView() { setContentView(R.layout.activity_main); mTabs = (PagerTab) findViewById(R.id.tabs); mPager = (ViewPager) findViewById(R.id.pager); MainAdapter adapter = new MainAdapter(getSupportFragmentManager()); mPager.setAdapter(adapter); //绑定到一起 mTabs.setViewPager(mPager); mTabs.setOnPageChangeListener(this); } @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onPageSelected(int arg0) { BaseFragment fragment = FragmentFactory.createFragment(arg0); fragment.show(); } }
MainActivity
相关文章推荐
- Android中级:ActionBar + DrawerLayout实现侧滑菜单
- Android DrawerLayout 高仿QQ5.2双向侧滑菜单
- Android DrawerLayout 高仿QQ5.2双向侧滑菜单
- Android侧滑菜单DrawerLayout
- Android DrawerLayout 高仿QQ5.2双向侧滑菜单
- Android侧滑菜单DrawerLayout的使用
- android DrawerLayout实现仿QQ侧滑菜单
- Android-- 高仿QQ5.2双向侧滑菜单 使用DrawerLayout
- Android DrawerLayout-侧滑菜单
- android组件之DrawerLayout(抽屉导航)-- 侧滑菜单效果
- Android:UI控件DrawerLayout、Fragment、SlidingLayout、侧滑菜单 推荐
- Android DrawerLayout 高仿QQ5.2双向侧滑菜单
- (4.1.34)Android侧滑菜单DrawerLayout的使用
- android组件之DrawerLayout(抽屉导航)-- 侧滑菜单效果
- google 原生态 抽屉式侧滑菜单 Android DrawerLayout 布局的使用介绍
- android 侧滑菜单DrawerLayout
- android官方侧滑菜单DrawerLayout详解
- android官方侧滑菜单DrawerLayout详解
- android官方侧滑菜单DrawerLayout详解
- Android DrawerLayout 高仿QQ5.2双向侧滑菜单