先在布局中定义
<HorizontalScrollView
android:id="@+id/hsv"
android:layout_width="mach_content"
android:layout_height="0dp"
android:layout_weight="1"
android:scrollbars="none" >
<LinearLayout
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
</LinearLayout>
</HorizontalScrollView>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10" />
在Activity中先找到控件
// 添加TextView
private void addHorizontalSrcollView() {
for (int i = 0; i < titleName.length; i++) {
TextView tv = new TextView(this);
tv.setId(i);
tv.setText(titleName[i]);
tv.setTextSize(18);
tv.setOnClickListener(this);
if (i == 0) {
tv.setTextColor(Color.RED);
} else {
tv.setTextColor(Color.BLACK);
}
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.setMargins(25, 10, 25, 10);
mLl.addView(tv, lp);
listText.add(tv);
}
}
private void initHorizontalScrollView() {
// 得到屏幕的宽度
mScreenWidth = getResources().getDisplayMetrics().widthPixels;
listText = new ArrayList<TextView>();
addHorizontalSrcollView();
// 设置ViewPager的适配
mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public int getCount() {
return listText.size();
}
@Override
public Fragment getItem(int arg0) {
return MyFragment.getInstance(RequestUrlAddress.address[arg0]);
}
});
// ViewPager的滑动监听
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
for (int i = 0; i < titleName.length; i++) {
TextView tv = listText.get(i);
if (i == arg0) {
tv.setTextColor(Color.RED);
} else {
tv.setTextColor(Color.BLACK);
}
}
// 设置居中
View curTabView = mLl.getChildAt(arg0);
// 获取x的值
int left = curTabView.getLeft();
int width = curTabView.getMeasuredWidth();
int toX = left + width / 2 - mScreenWidth / 2;
// 滚动
mHsv.smoothScrollTo(toX, 0);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
// 点击ScrollView的每一项跳转到相应的fragment中
@Override
public void onClick(View v) {
mViewPager.setCurrentItem(v.getId());
}