XML布局文件
<LinearLayout
android:id="@+id/ll_titles"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" />
实现代码
public class MainActivity extends FragmentActivity implements OnClickListener {
String[] jsons = new String[] { "advanced", "base", "fuwuqi", "human",
"openstack", "router", "sql", "vpn", "walls" };
String[] names = new String[] { "网工基础", "xxxxx", "yyyyy", "xxxxxx",
"zzzzz", "dddddd", "eeeeee", "sssssss", "防火墙" };
private LinearLayout ll_titles;
private ViewPager viewPager;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.viewPager);
ll_titles = (LinearLayout) findViewById(R.id.ll_titles);
// 设置数据适配器
viewPager.setAdapter(new FragmentPagerAdapter(
getSupportFragmentManager()) {
@Override
public int getCount() {
return jsons.length;
}
@Override
public Fragment getItem(int position) {
Fragment fragment = DataFragment.getInstance(jsons[position]);
return fragment;
}
});
// 线性布局添加数据
for (int i = 0; i < names.length; i++) {
// 创建textView
TextView textView = new TextView(this);
if (i == 0) {
textView.setTextColor(Color.RED);
} else {
textView.setTextColor(Color.GRAY);
}
// 设置布局参数,注意倒包
LayoutParams layoutparams = new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
// 设置外间距
layoutparams.setMargins(10, 5, 10, 5);
// 设置内容
textView.setText(names[i]);
textView.setOnClickListener(this);
// 添加控件
ll_titles.addView(textView, layoutparams);
}
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int posisiton) {
for (int i = 0; i < ll_titles.getChildCount(); i++) {
TextView textView = (TextView) ll_titles.getChildAt(i);
if (posisiton == i) {
textView.setTextColor(Color.RED);
} else {
textView.setTextColor(Color.GRAY);
}
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
@Override
public void onClick(View v) {
// 判断当前点击了哪一个
for (int i = 0; i < ll_titles.getChildCount(); i++) {
TextView tv = (TextView) ll_titles.getChildAt(i);
if (v == tv) {
// 让对应的这个textView变红
tv.setTextColor(Color.RED);
viewPager.setCurrentItem(i);
} else {
tv.setTextColor(Color.GRAY);
}
}
}
}