tablayout

来源:互联网 发布:python 文件重命名 编辑:程序博客网 时间:2024/05/17 03:10
  • 1
  • 8
  • 2

ColaCheng/AndroidTabLayoutWithViewPager

 Code Issues 0 Pull requests 0 Wiki Pulse Graphs
Find file
712c128 on 26 Jun 2015
@ColaCheng ColaCheng upload code
RawBlameHistory
  
 
143 lines (118 sloc)  5.04 KB
 package com.example.cola.tablayoutwithviewpager;   import android.content.Contextimport android.graphics.drawable.Drawableimport android.support.design.widget.TabLayoutimport android.support.v4.app.Fragmentimport android.support.v4.app.FragmentManagerimport android.support.v4.app.FragmentPagerAdapterimport android.support.v4.view.ViewPagerimport android.os.Bundleimport android.support.v7.app.AppCompatActivityimport android.text.Spannableimport android.text.SpannableStringimport android.text.style.ImageSpanimport android.view.LayoutInflaterimport android.view.Viewimport android.widget.ImageViewimport android.widget.TextViewimport android.widget.Toast;   import java.util.ArrayListimport java.util.List;     public class MainActivityextends AppCompatActivity {   TabLayout tabLayout; ViewPager viewPager; PagerAdapter adapter;   @Override protected void onCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);   tabLayout = (TabLayout) findViewById(R.id.tab_layout); viewPager = (ViewPager) findViewById(R.id.pager);   if (viewPager != null) { setupViewPager(viewPager); } }   private void setupViewPager(ViewPagerviewPager) { adapter = new PagerAdapter(getSupportFragmentManager(),this); adapter.addFragment(newContentFragment().newInstance("Page1"),"Tab 1"); adapter.addFragment(newContentFragment().newInstance("Page2"),"Tab 2"); adapter.addFragment(newContentFragment().newInstance("Page3"),"Tab 3"); viewPager.setAdapter(adapter); tabLayout.setupWithViewPager(viewPager);   for (int i= 0; i < tabLayout.getTabCount(); i++) { TabLayout.Tab tab= tabLayout.getTabAt(i); tab.setCustomView(adapter.getTabView(i)); }   viewPager.setOnPageChangeListener(newViewPager.OnPageChangeListener() {   // This method will be invoked when a new page becomes selected. @Override public void onPageSelected(intposition) { Toast.makeText(MainActivity.this"Selected page position:" + position, Toast.LENGTH_SHORT).show(); }   // This method will be invoked when the current page is scrolled @Override public void onPageScrolled(intposition, float positionOffset,int positionOffsetPixels) { // Code goes here }   // Called when the scroll state changes: // SCROLL_STATE_IDLE, SCROLL_STATE_DRAGGING, SCROLL_STATE_SETTLING @Override public void onPageScrollStateChanged(intstate) { // Code goes here } }); }   public class PagerAdapterextends FragmentPagerAdapterprivate final List<Fragment> myFragments= new ArrayList<>(); private final List<String> myFragmentTitles= new ArrayList<>(); private Context context;   private int[] imageResId =R.drawable.facebook_logo_32, R.drawable.instagram_logo_32, R.drawable.linkedin_logo_32 };   private int[] customImageResId =R.drawable.facebook, R.drawable.instagram, R.drawable.linkedin };   public PagerAdapter(FragmentManager fm, Context context) { super(fm); this.context= context; }   public void addFragment(Fragmentfragment, String title) { myFragments.add(fragment); myFragmentTitles.add(title); }   @Override public Fragment getItem(intposition) { return myFragments.get(position); }   @Override public int getCount() { return myFragments.size(); }   public View getTabView(intposition) { // Given you have a custom layout in `res/layout/custom_tab_item.xml` with a TextView and ImageView View v = LayoutInflater.from(context).inflate(R.layout.custom_tab_item,null); TextView tv = (TextView) v.findViewById(R.id.tab_item_txt); tv.setText(myFragmentTitles.get(position)); ImageView img = (ImageView) v.findViewById(R.id.tab_item_view); img.setImageResource(customImageResId[position]); return v; }   @Override public CharSequence getPageTitle(intposition) { //text only, use this // return myFragmentTitles.get(position);   //add Tab with icon and text, use this Drawable image = context.getResources().getDrawable(imageResId[position]); image.setBounds(0,0, image.getIntrinsicWidth(), image.getIntrinsicHeight()); SpannableString sb = new SpannableString("" + myFragmentTitles.get(position)); ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BOTTOM); sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return sb; } } }
0 0