ImageVerifierCode 换一换
格式:DOCX , 页数:5 ,大小:16.72KB ,
资源ID:15535290      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15535290.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ActionBar7 ActionBar ViewPager Fragment 实现可左右滑动的Tab页布局.docx)为本站会员(b****7)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

ActionBar7 ActionBar ViewPager Fragment 实现可左右滑动的Tab页布局.docx

1、ActionBar7 ActionBar ViewPager Fragment 实现可左右滑动的Tab页布局ActionBar(7) ActionBar+ViewPager+Fragment 实现可左右滑动的Tab页布局 ActionBar除了可以本身定制VIEW外,还可以利用ActionBar+ViewPager+Fragment 实现一些好用的效果。如本次要说的可左右滑动的Tab页布局。 可左右滑动的Tab页布局的好处在于,用单手左右滑动操作即可,而无须去点击切换Tab页。 要实现可于 ActionBar设为NAVIGATION_MODE_TABS模式,实现Tab. ViewPager用于

2、装载Fragment页面组或View组,使其能左右滑动. Fragment 用自己的布局,自己的生命周期。具体可查. ActionBar和ViewPager的相互配合主要通过ActionBar的TabListener监听和ViewPager的PageChangeListener监听来交互。效果如下:实现步骤如下: 1. 在XML布局文件中指定ViewPager。html view plaincopy<?xml version=1.0 encoding=utf-8?> <LinearLayout xmlns:android= android:layout_width=match

3、_parent android:layout_height=match_parent android:orientation=vertical > <android.support.v4.view.ViewPager android:id=+id/vPager android:layout_width=wrap_content android:layout_height=wrap_content android:layout_gravity=center android:layout_weight=1.0 android:background=#000000 android:fli

4、pInterval=30 android:persistentDrawingCache=animation /> </LinearLayout> 2. 直接上代码工程中 ActionBarActivity 引用自android-support-v7-appcompat扩展包。 具体引用方法可参考点击打开链接java view plaincopypublic class TabBar4Activity extends ActionBarActivity private ActionBar actionBar; private Spinner mActionbarSpinner;

5、 private ViewPager mPager; private ArrayList<View> mViews = null; private ArrayList<Fragment> mFragmentsList; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_tabbar); /得到Bar actionBar = getSupportActionBar()

6、; /设置标题 actionBar.setTitle(ActionBar+ViewPager+Fragment); actionBar.setSubtitle(努力!); /实现用户点击ActionBar 图标后返回前一个activity actionBar.setDisplayHomeAsUpEnabled(true) ; /定义ActionBar模式为NAVIGATION_MODE_TABS actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.addTab(actionBar.newTab() .se

7、tText(t1) .setIcon(R.drawable.ic_launcher) .setTabListener(MyBarTabListener); actionBar.addTab(actionBar.newTab() .setText(t2) .setIcon(R.drawable.ic_launcher) .setTabListener(MyBarTabListener); mPager = (ViewPager)findViewById(R.id.vPager); mFragmentsList = new ArrayList<Fragment>(); Fragment

8、 page1fragment = TabPageFragment.newInstance(ActionBar+ViewPager+Fragment page1); Fragment page2fragment = TabPageFragment.newInstance(ActionBar+ViewPager+Fragment page2); mFragmentsList.add(page1fragment); mFragmentsList.add(page2fragment); mPager.setAdapter(new MyFragmentPagerAdapter(getSupportFra

9、gmentManager(), mFragmentsList); /- mPager.setOnPageChangeListener(new MyPageScrollEvent(); mPager.setCurrentItem(0); SuppressLint(NewApi) Override public boolean onCreateOptionsMenu(Menu menu) / Inflate the menu; this adds items to the action bar if it is present. /添加菜单项 MenuItem findItem = menu.ad

10、d(0,1,0,查找); MenuItem exitItem = menu.add(0,0,0,退出); /绑定到ActionBar findItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); exitItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); return true; /* * ActionBar上的Tab页更改 * Public Methods onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) Call

11、ed when a tab that is already selected is chosen again by the user. onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) Called when a tab enters the selected state. onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) Called when a tab exits the selected state. */ private final TabListene

12、r MyBarTabListener = new TabListener() private final static String TAG = MyBarTabListener; Override public void onTabReselected(Tab arg0, FragmentTransaction arg1) / TODO Auto-generated method stub Log.d(TAG,onTabReselected); Override public void onTabSelected(Tab arg0, FragmentTransaction arg1) / T

13、ODO Auto-generated method stub Log.d(TAG,onTabSelected); /当更改ActionBar上的Tab页有更改时,ViewPager显示相关的页面 if (mPager != null) mPager.setCurrentItem(arg0.getPosition(); Override public void onTabUnselected(Tab arg0, FragmentTransaction arg1) / TODO Auto-generated method stub Log.d(TAG,onTabUnselected); ; /*

14、* 用于ViewPager滑动时触发. * * onPageScrollStateChanged(int state) Called when the scroll state changes. onPageScrolled(int position, float positionOffset, int positionOffsetPixels) This method will be invoked when the current page is scrolled, either as part of a programmatically initiated smooth scroll o

15、r a user initiated touch scroll. onPageSelected(int position) This method will be invoked when a new page becomes selected. */ class MyPageScrollEvent implements OnPageChangeListener private final static String TAG = MyPageScrollEvent; Override public void onPageScrollStateChanged(int arg0) / TODO A

16、uto-generated method stub Log.d(TAG,onPageScrollStateChanged); Override public void onPageScrolled(int arg0, float arg1, int arg2) / TODO Auto-generated method stub Log.d(TAG,onPageScrolled); Override public void onPageSelected(int arg0) / TODO Auto-generated method stub Log.d(TAG,onPageSelected); /

17、当滑动ViewPager 换页时,将ActionBar上的Tab显示到对应页 actionBar.selectTab(actionBar.getTabAt(arg0); /* * FragmentPagerAdapter继承自PagerAdapter,是其中的一种实现。 * 它将每一个页面表示为一个 Fragment,并且每一个Fragment都将会保存到fragment manager当中。 * 而且,当用户没可能再次回到页面的时候,fragment manager才会将这个Fragment销毁。. * author XCL * */ public class MyFragmentPager

18、Adapter extends FragmentPagerAdapter private ArrayList<Fragment> fragmentsList; public MyFragmentPagerAdapter(FragmentManager fm) super(fm); public MyFragmentPagerAdapter(FragmentManager fm, ArrayList<Fragment> fragments) super(fm); this.fragmentsList = fragments; Override public Fragmen

19、t getItem(int arg0) / TODO Auto-generated method stub return fragmentsList.get(arg0); Override public int getCount() / TODO Auto-generated method stub return fragmentsList.size(); /* * 菜单事件响应 */ public boolean onOptionsItemSelected(MenuItem item) / TODO Auto-generated method stub switch (item.getIte

20、mId() case 0: /displayToast(退出菜单); break; case 1: /displayToast(查找菜单); break; case android.R.id.home: Intent intent = new Intent(this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); Toast.makeText(getApplicationContext(),

21、android.R.id.home, 0) .show(); break; default: /action_compose break; return super.onOptionsItemSelected(item); TabPageFragment.javajava view plaincopypublic class TabPageFragment extends Fragment private static final String TAG = TabPageFragment; private String pagInfo; static TabPageFragment newIn

22、stance(String s) TabPageFragment newFragment = new TabPageFragment(); Bundle bundle = new Bundle(); bundle.putString(fgArg, s); newFragment.setArguments(bundle); return newFragment; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); Log.d(TAG, TabPageFragmen

23、t-onCreate); Bundle args = getArguments(); pagInfo = args != null ? args.getString(fgArg) : page; Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) Log.d(TAG, TabPageFragment-onCreateView); View view = inflater.inflate(R.layout.fragment_demo, c

24、ontainer, false); TextView viewTvPage = (TextView) view.findViewById(R.id.tv_page); viewTvPage.setText(pagInfo); return view; Override public void onDestroy() super.onDestroy(); Log.d(TAG, TabPageFragment-onDestroy); fragment_demo.xmlhtml view plaincopy<?xml version=1.0 encoding=utf-8?> <Li

25、nearLayout xmlns:android= android:layout_width=match_parent android:layout_height=match_parent android:orientation=vertical android:background=#708090 > <TextView android:id=+id/tv_page android:layout_width=wrap_content android:layout_height=wrap_content android:text=TextView /> </LinearLayout> MAIL:xcl_168我的CSDN BLOG:

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2