标签:
参考: http://www.tuicool.com/articles/iENjuy 其实就是按照demo写了下来
package com.zc.trafficjam; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; public class TabPageAdapter extends FragmentPagerAdapter { public TabPageAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int index) { Bundle bundle = new Bundle(); String tab = ""; int colorResId = 0; switch (index) { case 0: tab = "List of Missed Calls"; colorResId = R.color.color1; break; case 1: tab = "List of Dialled Calls"; colorResId = R.color.color2; break; case 2: tab = "List of Received Calls"; colorResId = R.color.color3; break; } bundle.putString("tab", tab); bundle.putInt("color", colorResId); SwipeTabFragment swipeTabFragment = new SwipeTabFragment(); swipeTabFragment.setArguments(bundle); return swipeTabFragment; } @Override public int getCount() { return 3; } }
package com.zc.trafficjam; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class SwipeTabFragment extends Fragment { private String tab; private int color; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle bundle = getArguments(); tab = bundle.getString("tab"); color = bundle.getInt("color"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_main, null); TextView tv = (TextView) view.findViewById(R.id.textView); tv.setText(tab); view.setBackgroundResource(color); return view; } }
package com.zc.trafficjam; import android.app.ActionBar.Tab; import android.app.Activity; import android.app.ActionBar; import android.app.Fragment; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.os.Build; public class MainActivity extends FragmentActivity implements ActionBar.TabListener { private ViewPager viewPager; private ActionBar actionBar; private TabPageAdapter tabPageAdapter; private String[] tabs = { "Missed Calls", "Dialled", "Received" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.pager); tabPageAdapter = new TabPageAdapter(getSupportFragmentManager()); viewPager.setAdapter(tabPageAdapter); actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); for (String tab_name : tabs) { actionBar.addTab(actionBar.newTab().setText(tab_name) .setTabListener(this)); } viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { /** * on swipe select the respective tab * */ @Override public void onPageSelected(int position) { actionBar.setSelectedNavigationItem(position); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); } @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; } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); return rootView; } } }
layout/fragment_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Text" android:id="@+id/textView" android:layout_gravity="center_horizontal" android:layout_marginTop="20dp" /> <!-- --> </LinearLayout>
layout/main_activity.xml
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" />
values/color.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="color1">#37bdb4</color> <color name="color2">#ea5265</color> <color name="color3">#f4b61a</color> </resources>
Creating Swipe Views with Tabs
标签:
原文地址:http://www.cnblogs.com/techidea/p/4299025.html