ActionBar与ViewPager结合实现“书签导航”
2017-02-17 16:24
501 查看
ActionBar与Pager结合实现“书签导航”首先看MainActivity:
public class MainActivity extends AppCompatActivity implements ActionBar.TabListener{ private ViewPager viewPager; private List<Fragment> list; private ActionBar bar; private MyFragmentPagerAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.viewPager); list = new ArrayList<>(); for(int i=0;i<3;i++){
//实例化Fragment,并向其传递数据 MyFragment myFragment = new MyFragment(); Bundle bundle = new Bundle(); bundle.putInt("type",i); myFragment.setArguments(bundle); list.add(myFragment); } adapter = new MyFragmentPagerAdapter(getSupportFragmentManager(),list); viewPager.setAdapter(adapter);
//获得Activity的ActionBar bar = getSupportActionBar();//注意:这里是v7包下的ActionBar
//设定ActionBar的导航模式bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
//向ActionBar中增加标签页bar.addTab(bar.newTab().setText("体育").setTabListener(this));bar.addTab(bar.newTab().setText("娱乐").setTabListener(this));bar.addTab(bar.newTab().setText("军事").setTabListener(this));viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}@Overridepublic void onPageSelected(int position) {
//让标签页与ViewPager联动bar.setSelectedNavigationItem(position);}@Overridepublic void onPageScrollStateChanged(int state) {}});}@Overridepublic void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
//ViewPager与标签页联动viewPager.setCurrentItem(tab.getPosition());}@Overridepublic void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {}@Overridepublic void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {}}MainActiviy的布局文件:其中只是放置了一个ViewPager
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight=[/b]"@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.shen.actionbar.MainActivity"><android.support.v4.view.ViewPagerandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/viewPager"/></RelativeLayout>还有Fragment:
public class MyFragment extends Fragment {public MyFragment() {// Required empty public constructor}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragment_my, container, false);TextView textView = (TextView) view.findViewById(R.id.tvText);
//接收Activity传来的数据Bundle bundle = getArguments();int type = bundle.getInt("type");switch (type){case 0:textView.setText("军事");break;case 1:textView.setText("娱乐");break;case 2:textView.setText("体育");break;}return view;}Fragment布局文件:也很简单,放置一个TextView来显示文本
FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.shen.actionbar.MyFragment"><!-- TODO: Update blank fragment layout --><TextViewandroid:id="@+id/tvText"android:layout_width="match_parent"android:layout_height="match_parent"android:text="myFragmemt" /></FrameLayout>当然要进行书签导航翻页,FragmentPagerAdapter也是少不了的。
public class MyFragmentPagerAdapter extends FragmentPagerAdapter {private List<Fragment> list;public MyFragmentPagerAdapter(FragmentManager fm) {super(fm);}public MyFragmentPagerAdapter(FragmentManager fm, List<Fragment> list) {super(fm);this.list = list;}@Overridepublic Fragment getItem(int position) {return list.get(position);}@Overridepublic int getCount() {return list.size();}}完成这些就可以实现“书签导航”啦~样式如图:
相关文章推荐
- ViewPager与ActionBar结合实现导航
- Android典型界面设计(6)——ActionBar Tab+ViewPager+Fagment实现滑动导航
- ActionBar和Fragment结合ViewPager实现TabActivity
- 低版本系统兼容的ActionBar(六)用Fragment+ViewPager+Tab实现快速导航
- Actionbar+Fragment+viewpager实现导航
- Android典型界面设计(6)——ActionBar Tab+ViewPager+Fagment实现滑动导航
- ActionBar和Fragment结合ViewPager实现TabActivity
- ActionBar(7) ActionBar+ViewPager+Fragment 实现可左右滑动的Tab页布局
- ActionBar + ViewPager实现左右滑动切换Tab页效果
- ActionBar详解(六)--->利用ActionBar结合Fragment实现下拉式导航
- 利用ViewPager+Fragment+actionbar实现可左右滑动的Action Tab
- ActionBar详解(五)--->利用ActionBar结合Fragment实现Tab导航
- ActionBar(6) ActionBar+ViewPager 实现可左右滑动的Tab页布局
- actionBar + viewPager实现活动tab
- ViewPagerIndicator系列之--ViewPager+ActionBar+Fragment实现响应式可滑动Tab
- ActionBar(5) ActionBar+ViewPager+PagerTitleStrip 实现可左右滑动的Tab页布局
- Android RadioGroup+ViewPager+ActionBar实现仿微信6.0界面(底部滑动菜单栏+导航栏)
- ActionBar结合Fragment实现Tab导航、下拉式导航
- Android ActionBar+ViewPager 实现左右滑动Tab
- Android编程心得-使用ActionBar+Fragment+ViewPager实现动态切换Menu效果