Tab+List导航(滑动+点击导航)
2015-11-23 15:04
417 查看
1.在activity_main.xml中设置为:
那么,就全部都要匹配,都要使用android-support-v4.jar包中的相关控件等
2.在Fragment的实现类中
3.在MainActivity.java中,要使Activity继承于FragmentActivity
效果:
<android.support.v4.view.ViewPager android:id="@+id/vp_content_main" android:layout_width="match_parent" android:layout_height="match_parent" /> |
2.在Fragment的实现类中
package com.example.actionbarwithfragmenttest; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class FragmentB extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //设置布局文件 //将xml文件转换为View View v = inflater.inflate(R.layout.fragment_3, container,false); return v; } } |
package com.example.actionbarwithfragmenttest; import java.util.ArrayList; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.ActionBar.TabListener; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; public class MainActivity extends FragmentActivity implements TabListener { ActionBar actionBar; ViewPager vpContent; ArrayList<Fragment> fragments=new ArrayList<Fragment>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //隐藏icon/title actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayShowHomeEnabled(false); // 创建tabR对象 Tab tabR = actionBar.newTab(); tabR.setText("R"); // 设置监听器 tabR.setTabListener(this); // 添加Tab actionBar.addTab(tabR); // 创建tabG对象 Tab tabG = actionBar.newTab(); tabG.setText("G"); tabG.setTabListener(this); actionBar.addTab(tabG); // 创建tabB对象 Tab tabB = actionBar.newTab(); tabB.setText("B"); tabB.setTabListener(this); actionBar.addTab(tabB); fragments.add(new FragmentR()); fragments.add(new FragmentG()); fragments.add(new FragmentB()); vpContent=(ViewPager) findViewById(R.id.vp_content_main); vpContent.setAdapter(new MyAdapter(getSupportFragmentManager())); //getSupportFragmentManager()是android-support-v4.jar中的 vpContent.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { actionBar.setSelectedNavigationItem(arg0); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) {} @Override public void onPageScrollStateChanged(int arg0) {} }); } //创建FragmentPageAdapter class MyAdapter extends FragmentPagerAdapter{ public MyAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int arg0) { return fragments.get(arg0); } @Override public int getCount() { return fragments.size(); } } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { int position = tab.getPosition(); if(vpContent==null){ return; } vpContent.setCurrentItem(position); } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) {} @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) {} } |
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories