动态加载HorizontalSrcollView与ViewPager关联使用
来源:互联网 发布:淘宝服装商标男装取名 编辑:程序博客网 时间:2024/05/16 19:41
先在布局中定义
<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());
}
- 动态加载HorizontalSrcollView与ViewPager关联使用
- TabPageIndicator与ViewPager关联
- ViewPager动态加载数据
- ViewPager的动态加载
- viewpager动态加载数据
- 动态viewpager加载图片
- ViewPager动态加载布局
- 动态加载:ViewPager数量
- 他山之石之动态加载碎片的最佳写法以及ViewPager关联按钮
- android ViewPager动态加载问题
- Android ViewPager动态加载数据
- Android ViewPager动态加载数据
- Android ViewPager动态加载数据
- 关于ViewPager动态加载数据
- Android ViewPager动态加载数据
- ViewPager动态加载的问题
- ViewPager动态加载、删除页面
- ViewPager动态加载、删除页面
- 单生产者 多消费者
- [jq]jquery的has,find和filter方法的区别
- HTTP中的八种方法
- Hadoop:HDFS数据组织
- PTA 5-13 日K蜡烛图 (15分)
- 动态加载HorizontalSrcollView与ViewPager关联使用
- 【miscellaneous】网络摄像机
- css学习小记
- ASP.NET操作EXCEL的总结篇
- v字仇杀队
- Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法
- [李景山php]每天laravel-20161001|Validator.php-1
- Nginx 工作原理和优化、漏洞
- Hadoop:HDFS空间回收