使用方法
1:在mainactivity布局文件中
<HorizontalScrollView android:id="@+id/HSV" android:layout_width="match_parent" android:layout_height="50dp" android:background="#fcc" android:scrollbars="none" > <LinearLayout android:id="@+id/llTitle" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_gravity="center_vertical"></LinearLayout> </HorizontalScrollView> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v4.view.ViewPager> 2:在MAinActivity中public class MainActivity extends AppCompatActivity implements View.OnClickListener { private HorizontalScrollView hsv; private LinearLayout llTItle; private ViewPager vp; //放置title的集合 private List<String> titles; //放置fragment的集合 private List<Fragment> fragments; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 initView(); //初始化数据 initDate(); //添加titles addTitles(); //ViewPager的适配器 vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return fragments.get(position); } @Override public int getCount() { return fragments.size(); } }); //设置ViewPager的监听事件 vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { //点击变换颜色 for (int i = 0; i < titles.size(); i++) { TextView text = (TextView) llTItle.getChildAt(i); if (i == position) { text.setTextColor(Color.YELLOW); } else { text.setTextColor(Color.BLACK); } } //设置联动 int margins = 40 * position; int winths = 0; for (int j = 0; j < titles.size(); j++) { TextView textview = (TextView) llTItle.getChildAt(j); winths += textview.getWidth(); } hsv.scrollTo(margins, winths); } @Override public void onPageScrollStateChanged(int state) { } }); } private void addTitles() { //把模拟的数据添加到textview中 for(int i = 0;i<titles.size();i++){ TextView text = new TextView(this); text.setTextSize(20); //设置textview格式 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams. MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT); params.setMargins(20,8,20,8); text.setLayoutParams(params); text.setText(titles.get(i)); //把textview中的数据添加到LinearLayout中 llTItle.addView(text); //textview点击切换页面 text.setId(1000+i); text.setOnClickListener(this); //设置默认颜色 if(i==0){ text.setTextColor(Color.YELLOW); }else{ text.setTextColor(Color.BLACK); } BaseFragment fragment = new BaseFragment(); fragments.add(fragment); } } private void initDate() { titles = new ArrayList<>(); fragments = new ArrayList<>(); titles.add("周一"); titles.add("周二"); titles.add("周三"); titles.add("周四"); titles.add("周五"); titles.add("昨天"); titles.add("今天"); } private void initView() { hsv = (HorizontalScrollView) findViewById(R.id.HSV); llTItle = (LinearLayout) findViewById(R.id.llTitle); vp = (ViewPager) findViewById(R.id.vp); } @Override public void onClick(View v) { //点击切换页面时,通过id来确定,点第几个显示第几页 int id = v.getId(); int position = id-1000; vp.setCurrentItem(position); //点击变换颜色 for (int i = 0;i<titles.size();i++){ TextView text = (TextView) llTItle.getChildAt(i); if(i==position){ text.setTextColor(Color.YELLOW); }else{ text.setTextColor(Color.BLACK); } } } } 3:在BaseFragment中public class BaseFragment extends Fragment { private View view; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.basefragments,container,false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //xutils网络请求getDataFromServer();
}public void getDataFromServer() { String url="http://zkread.com/htnewsroom/v2.0/tech/user-0/itemId-12?page=1&firstId=1345100"; RequestParams params=new RequestParams(); params.setUri(url); x.http().get(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { if (result !=null){ Gson gson=new Gson(); News bean = gson.fromJson(result, News.class); List<News.DataBean> data = bean.getData(); lv = (ListView) getView().findViewById(R.id.lv); MyListViewAdapter adapter=new MyListViewAdapter(data,getActivity()); lv.setAdapter(adapter); } } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); } 4:BaseApplication/** * * 描述:xutils的基本帮助类(用xutils3时需要添加依赖) */ public class BaseApplication extends Application { @Override public void onCreate() { super.onCreate(); x.Ext.init(this); x.Ext.setDebug(BuildConfig.DEBUG); } } 5:请求网络用的实体类自己写
}