//布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.lxb20170912.MainActivity" android:orientation="vertical" > <HorizontalScrollView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/hs" android:layout_marginTop="30dip" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:id="@+id/showtitle" > </LinearLayout> </HorizontalScrollView> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> </LinearLayout>
//MainActivity
package com.example.lxb20170912; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.HorizontalScrollView; import android.widget.LinearLayout; import android.widget.TextView; import java.util.ArrayList; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private LinearLayout show; private HorizontalScrollView hs; private ViewPager vp; private String[] titles; private ArrayList<TextView> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); show =(LinearLayout)findViewById(R.id.showtitle);//布局 hs =(HorizontalScrollView)findViewById(R.id.hs);//滚动 vp =(ViewPager)findViewById(R.id.vp);//viewpager titles = new String[]{"头条", "社会", "国内", "国际", "娱乐", "体育", "军事", "科技", "财经", "时尚"}; list =new ArrayList<TextView>(); for (int i=0;i<titles.length;i++){//for循环放入textview TextView view = new TextView(this);//自定义一个textview view.setText(titles[i]);//把数组的内容放入textview控件 view.setTextSize(20);//设置字体的大小 if(i==0){//设置刚进入的字体颜色 view.setTextColor(Color.RED); }else{ view.setTextColor(Color.BLACK); } view.setOnClickListener(this);//textview控件的点击事件 view.setId(i+10000);// //设置textview控件的宽高 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.setMargins(20,10,20,10);//设置内边距 show.addView(view,params);//将textview控件添加到滚动控件里面的LinearLayout布局 list.add(view);//添加到集合 } vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return fragment.getin(list.get(position).getText().toString()); } @Override public int getCount() { return titles.length; } }); vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i=0;i<list.size();i++){ if(position==i){ list.get(i).setTextColor(Color.RED); }else{ list.get(i).setTextColor(Color.BLACK); } } TextView textView = list.get(position); int width = textView.getWidth();//获取宽度 //计算该滑到哪里 hs.scrollTo((width+20)*position,0);//viewpager滑动时与滚动控件想配合一起滑动 } @Override public void onPageScrollStateChanged(int state) { } }); } @Override public void onClick(View view) { int id = view.getId(); vp.setCurrentItem(id-10000);// } }//fragmentpackage com.example.lxb20170912; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; /** * 作者:刘雄彪 */ public class fragment extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { Bundle arguments = getArguments(); String sss = arguments.getString("sss"); TextView textView = new TextView(getActivity()); textView.setText(sss); return textView; } public static Fragment getin(String titles){ fragment fragment0 = new fragment(); Bundle bundle = new Bundle(); bundle.putString("sss",titles); fragment0.setArguments(bundle); return fragment0; } }