问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么实现 scrollview的左右拖拽换页

发布网友 发布时间:2022-04-26 15:28

我来回答

1个回答

热心网友 时间:2023-10-11 21:35

 现在我做的是viewpager+HorizontalScrollView 实现来回切屏,并且title可以左右拖拽.转载
  代码片段

  <span style="font-size:16px;">/***
* init view
*/
void InItView() {
pageViews = new ArrayList<View>();
View view01 = getLocalActivityManager().startActivity("activity01",
new Intent(this, MainActivity1.class)).getDecorView();
View view02 = getLocalActivityManager().startActivity("activity02",
new Intent(this, MainActivity2.class)).getDecorView();
View view03 = getLocalActivityManager().startActivity("activity02",
new Intent(this, MainActivity3.class)).getDecorView();
View view04 = getLocalActivityManager().startActivity("activity03",
new Intent(this, MainActivity4.class)).getDecorView();
View view05 = getLocalActivityManager().startActivity("activity04",
new Intent(this, MainActivity5.class)).getDecorView();
View view06 = getLocalActivityManager().startActivity("activity05",
new Intent(this, MainActivity6.class)).getDecorView();
pageViews.add(view01);
pageViews.add(view02);
pageViews.add(view03);
pageViews.add(view04);
pageViews.add(view05);
pageViews.add(view06);
}</span>
  
  <span style="font-size:16px;"> /***
* init title
*/
void InItTitle() {
int width = getWindowManager().getDefaultDisplay().getWidth() / 5;
for (int i = 0; i < title.length; i++) {
RadioButton radioButton = new RadioButton(this, null,
R.style.radioButton);
radioButton.setText(title[i]);
radioButton.setTextSize(17);
radioButton.setTextColor(com.jj.viewpager.R.color.black);
radioButton.setWidth(width);
radioButton.setHeight(height);
radioButton.setGravity(Gravity.CENTER);
radioGroup.addView(radioButton);
}
}</span>
  <span style="font-size:16px;"> /***
* init title
*/
void InItTitle1() {
textViews = new ArrayList<TextView>();
int width = getWindowManager().getDefaultDisplay().getWidth() / 5;
int height = 70;
for (int i = 0; i < title.length; i++) {
TextView textView = new TextView(this);
textView.setText(title[i]);
textView.setTextSize(17);
textView.setTextColor(com.jj.viewpager.R.color.black);
textView.setWidth(width);
textView.setHeight(height - 30);
textView.setGravity(Gravity.CENTER);
textView.setId(i);
textView.setOnClickListener(this);
textViews.add(textView);
// 分割线
View view = new View(this);
LinearLayout.LayoutParams layoutParams = new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
layoutParams.width = 1;
layoutParams.height = height - 40;
layoutParams.gravity = Gravity.CENTER;
view.setLayoutParams(layoutParams);
view.setBackgroundColor(com.jj.viewpager.R.color.gray);
linearLayout.addView(textView);
if (i != title.length - 1) {
linearLayout.addView(view);
}

}
}</span>
  <span style="font-size:16px;">/***
* 选中效果
*/
public void setSelector(int id) {
for (int i = 0; i < title.length; i++) {
if (id == i) {
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.grouplist_item_bg_normal);
textViews.get(id).setBackgroundDrawable(
new BitmapDrawable(bitmap));
textViews.get(id).setTextColor(Color.RED);
viewPager.setCurrentItem(i);
}

else {
textViews.get(i).setBackgroundDrawable(new BitmapDrawable());
textViews.get(i).setTextColor(com.jj.viewpager.R.color.black);
}
}
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
linearLayout = (LinearLayout) findViewById(R.id.ll_main);
viewPager = (ViewPager) findViewById(R.id.pager);
horizontalScrollView = (HorizontalScrollView) findViewById(R.id.horizontalScrollView);
InItTitle1();
setSelector(0);
InItView();
viewPager.setAdapter(new myPagerView());
viewPager.clearAnimation();
viewPager.setOnPageChangeListener(new OnPageChangeListener() {

@Override
public void onPageSelected(int arg0) {
setSelector(arg0);
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {

}

@Override
public void onPageScrollStateChanged(int arg0) {

}
});
}

@Override
public void onClick(View v) {
setSelector(v.getId());
}

class myPagerView extends PagerAdapter {
// 显示数目
@Override
public int getCount() {
return pageViews.size();
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}

@Override
public int getItemPosition(Object object) {
// TODO Auto-generated method stub
return super.getItemPosition(object);
}

@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
// TODO Auto-generated method stub
((ViewPager) arg0).removeView(pageViews.get(arg1));
}

/***
* 获取每一个item, 类于listview中的getview
*/
@Override
public Object instantiateItem(View arg0, int arg1) {
((ViewPager) arg0).addView(pageViews.get(arg1));
return pageViews.get(arg1);
}

}</span>
  实现起来不难,主要用了HorizontalScrollView 这个实现左右拖拽功能,网上大部分都是用RadioButton实现的,可是觉得有点复杂,我们何不直接对Textview进行控制呢,
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
甲状腺穿刺细胞病理学检查及分子检测实践分享 认识甲状腺的解剖结构 ...其中左侧中部一个大小约4.7*3.1mm,下部背侧一 甲状腺疾病 严不严重 这是什么病 拍抖音视频如何赚钱 未成年人出国旅游 可不可以不跟监护人一起? 急! 关于未成年人去香港的问题 未成年自己报旅行社去度假村可以吗? 未成年人去香港旅游要多交多少钱? 未成年人参加旅行社旅游需要监护人么? ScrollView怎样才能上下或左右滑动 大学课程免修申请书怎么写? ios中scrollview怎么制作 小学生在原地为54学制转入63学制怎么转? scrollview怎么设置滚动 弹性学制申请怎么写 德国留学转学 谁知道在那能找到大学转系申请书,谢谢 求大学转系申请书的范文!!! 结业转毕业申请书怎么写 想从技校转专科学校申请书怎么写 转学申请书? 技校申请转学制的申请书怎么写 我的微信不小心删除了,帐号和密码全忘了,该怎么找回v一 微信卸载了又下载了微信可是忘记账号和密码了怎么能找回 A4纸复印成A3、B5分别选什么比例 微信卸载了,微信密码忘了,怎么登录 微信被删了怎么登录密码忘了? KUKA机器人编程软件在哪下载啊?要钱吗/ 谁有KUKA机器人WorkVisual软件使用方法的视频 跪求! 去韩国留学怎么去? ios scrollview怎么循环滑动 如何设置scrollview的滚动区域在本身的上方 大三想去英国读研究生,要怎么申请呢? uiscrollview怎么使用 户口注销学历如何变更? android开发怎么刷新 scrollview 怎么判断scrollView往什么方向滑动 android怎么截图scrollview所有 ios 怎么显示出scrollView的内容 如何立即响应ScrollView上的子视图的手势 ios怎么用代码调用scrollview 怎么设置scrollview不能滚动 如何给一个ScrollView添加一个水印,或者添加一些文字或截图 QQ中踩踏别人空间的信息怎么看? QQ中好友将收到踩踏他的空间是什么意思? 一台aruba控制器 poe交换机 无线ap怎么连接通过电信的猫 有哪位高人能破解交换机的密码吗?我的型号是Aruba2400 。 踩别人QQ空间怎么都是正在维护 缩写的例文