MyIndicator
2016-06-30 14:04
218 查看
package com.example.monthtest3; import java.util.ArrayList; import java.util.HashMap; import android.content.Context; import android.content.res.ColorStateList; import android.graphics.Color; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.AttributeSet; import android.view.View; import android.view.View.OnClickListener; import android.widget.HorizontalScrollView; import android.widget.LinearLayout; import android.widget.TextView; public class MyIndicator extends HorizontalScrollView implements OnClickListener{ private ViewPager viewPager; private LinearLayout linearLayout; private HashMap<TextView, Integer> tvMap = new HashMap<TextView, Integer>(); private ArrayList<String> strList=new ArrayList<String>(); public MyIndicator(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub initView(); } private void initView() { // TODO Auto-generated method stub } public MyIndicator(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub initView(); } public MyIndicator(Context context) { super(context); // TODO Auto-generated constructor stub initView(); } public void setViewPager(ViewPager viewPager){ this.viewPager=viewPager; linearLayout = new LinearLayout(getContext()); linearLayout.removeAllViews(); this.addView(linearLayout); LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(45, 20, 45, 20); int count = viewPager.getAdapter().getCount(); for (int i = 0; i < count; i++) { String title=(String) viewPager.getAdapter().getPageTitle(i); strList.add(title); TextView textView=new TextView(getContext()); textView.setText(title); textView.setTextSize(25); if(i==0){ textView.setTextColor(Color.GREEN); }else{ textView.setTextColor(Color.BLACK); } tvMap.put(textView, i); textView.setId(i); textView.setOnClickListener(this); linearLayout.addView(textView,params); } viewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { // TODO Auto-generated method stub for (int i = 0; i < linearLayout.getChildCount(); i++) { TextView textView=(TextView) linearLayout.getChildAt(i); if(arg0==i){ textView.setTextColor(Color.GREEN); }else{ textView.setTextColor(Color.BLACK); } } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } }); } @Override public void onClick(View v) { // TODO Auto-generated method stub // int id=v.getId(); // viewPager.setCurrentItem(id); Integer position = tvMap.get(v); viewPager.setCurrentItem(position); } }
MainActivity
package com.example.monthtest3; import java.util.Set; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends FragmentActivity{ String[] titles={"资讯","热点","博客","推荐"}; private ViewPager viewPager; private MyIndicator headertitle; private Button b2; private Button b3; private Button b1; private ImageView head; //private FragmentManager fragmentmanager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.viewPager); headertitle = (MyIndicator) findViewById(R.id.headertitle); // headertitle.setOnClickListener(this); // fragmentmanager = getSupportFragmentManager(); viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public int getCount() { // TODO Auto-generated method stub return titles.length; } @Override public Fragment getItem(int position) { // TODO Auto-generated method stub Fragment fragment = null; switch (position) { case 0: fragment = new Fragment1(); break; case 1: fragment = new Fragment2(); break; case 2: fragment = new Fragment3(); break; case 3: fragment = new Fragment4(); break; default: break; } return fragment; } @Override public CharSequence getPageTitle(int position) { // TODO Auto-generated method stub return titles[position]; } }); headertitle.setViewPager(viewPager); } //@Override // public void onClick(View v) { // // // TODO Auto-generated method stub // // // switch (headertitle.) { // case 0: // viewPager.setCurrentItem(0); // // break; // case 1: // viewPager.setCurrentItem(1); // //fragment=new Fragment3(); // break; // case 2: // viewPager.setCurrentItem(2); // break; // // // default: // break; // } // } }
相关文章推荐
- jQuery放大镜插件
- windows 端口转发自带工具 配合n2n用(该工具在本地转发的端口只能在本地访问 ,这一点太不爽了,还是用https://boutell.com/rinetd/方便些)
- CocoaPods的安装和使用
- sql中convert 日期函数的用法
- DialogFragment笔记
- 如何提高意志力
- 神经网络之激活函数(Activation Function)
- 在unity使用ScriptableObject制作配置文件
- 阻塞与非阻塞的区别
- Hibernate 持久层 常用接口
- Lesson 1:进入C++
- SpringMVC的几种返回方式
- javax.servlet.jsp.JspException cannot be resolved to a type
- MySQL Alter命令
- Javascript String|Date|Array|Math|Boolean|Number对象方法详解
- petalinux+usb wifi+驱动安装+工具使用(一/二)
- 系统限流实践 - 应用限流
- C++ 操作符重载
- 安卓手机上的通用快捷键
- 升级struts2漏洞的方法