HorizontalScroll的公共方法

合集下载

unity3D技术之guilayout.horizontalscrollbar水平滚动条

unity3D技术之guilayout.horizontalscrollbar水平滚动条

unity3D技术之guilayout.horizontalscrollbar⽔平滚动条parameters参数valuethe position between min and max在最⼩最⼤之间的位置(⽂章出⾃狗刨学习⽹)sizehow much can we see?我们能看到的⼤⼩?leftvaluethe value at the left end of the scrollbar滚动条左边末端的值。

rightvaluethe value at the right end of the scrollbar滚动条右边末端的值。

stylethe style to use for the scrollbar background. if left out, the horizontalscrollbar style from the current guiskin is used.⽤于滚动条背景的样式。

如果不使⽤,该⽔平滚动条使⽤当前的guiskin⽪肤optionsan optional list of layout options that specify extra layouting properties. any values passed in here will override settings defined by the style.布局选项指定额外布局属性的⼀个可选列表。

这⾥传递任意值都将覆盖由style定义的设置。

参考:guilayout.width,guilayout.height,guilayout.minwidth,guilayout.maxwidth,guilayout.minheight,guilayout.maxheight,guilayout.expandwidth,guilayout.expandheightreturnsfloat - the modified value. this can be changed by the user by dragging the scrollbar, or clicking the arrows at the end.返回浮点型,被修改的值。

qt c++ horizontalscrollbar基本用法

qt c++ horizontalscrollbar基本用法

在Qt C++中,HorizontalScrollBar(水平滚动条)通常不是单独使用的组件,而是与能够容纳滚动内容的容器类如QScrollArea、QTableView、QTextEdit 等一起使用。

以下是一个基本的示例,说明如何在一个QScrollArea中启用和操作水平滚动条:Cpp1// 首先包含必要的头文件2#include <QApplication>3#include <QScrollArea>4#include <QWidget>5#include <QHBoxLayout>67int main(int argc, char *argv[])8{9QApplication app(argc, argv);1011// 创建一个窗口部件作为滚动区域的内容12QWidget *contentWidget = new QWidget;13contentWidget->setMinimumWidth(1000); // 设置一个大于窗口初始大小的宽度以触发滚动条1415// 创建一个布局并添加到内容部件上,以便可以填充足够多的内容使滚动条出现16QHBoxLayout *layout = new QHBoxLayout(contentWidget);17for (int i = 0; i < 20; ++i) {18QPushButton *button = new QPushButton(QString("Button %1").arg(i));19layout->addWidget(button);20 }21layout->setContentsMargins(0, 0, 0, 0);22contentWidget->setLayout(layout);2324// 创建一个QScrollArea对象,并设置其内容部件为上面创建的widget25QScrollArea *scrollArea = new QScrollArea;26scrollArea->setWidget(contentWidget);27scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); // 根据需要显示或隐藏水平滚动条28scrollArea->setWidgetResizable(true); // 当滚动区域大小改变时,内容部件也相应调整大小2930// 创建主窗口并设置滚动区域为其中央部件31 QMainWindow window;32window.setCentralWidget(scrollArea);33window.show();3435return app.exec();36}在这个例子中,当contentWidget的宽度超过了QScrollArea的可见区域时,水平滚动条会自动出现,允许用户左右滚动查看内容。

ScrollView详解

ScrollView详解

ScrollView详解创建⽅式1:StoryBoard/Xib这⾥StoarBoard就不多说,直接拖就可以,说太多没意思,如果连这个都不会我只能先给你跪了!2:代码:1 2 3CGRect bounds = [ [ UIScreen mainScreen ] applicationFrame ] ;UIScrollView* scrollView = [ [UIScrollView alloc ] initWithFrame:bounds ];1. 当你创建完滚动视图后,你可以将另⼀个视图的内容粘合到滚动视图的空⽩页上。

这回创建⼀个滚动的内容窗⼝:1 [ scrollView addSubview:myView];UIScrollView使⽤的步骤1.创建UIScrollView2.将需要展⽰的内容添加到UIScrollView中3.设置UIScrollView的滚动范围 (contentSize)基本属性scrollView不能滚动的⼏种情况1.没有设置contentSize2.scrollEnabled属性 = NOerInteractionEnabled属性 = NOself.scrollView.scrollEnabled = NO;erInteractionEnabled = NO;enabled和userInteractionEnabled的区别enabled: 代表控件不可⽤userInteractionEnabled: 代表控件不可以和⽤户交互, 也就是不能响应⽤户的操作注意: 如果想让UIScrollView进⾏滚动, 必须设置可以滚动的范围注意: 如果想让UIScrollView进⾏滚动, 必须设置可以滚动的范围设置scrollView的滚动范围为, frame的宽⾼ + 100self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width + 100, self.scrollView.frame.size.height + 100);2.设置滚动范围self.scrollView.contentSize = iv.image.size;// 如何去掉滚动条self.scrollView.showsHorizontalScrollIndicator = NO;self.scrollView.showsVerticalScrollIndicator = NO;滚动条也是scrollView的⼦控件的⼀部分滚动条可能在⼦控件的前⾯, 也可能在⼦控件的后⾯正是因为这个原始, 所以以后在开发中不推荐⼤家通过subviews获取⼦控件的⽅式来操作⼦控件[self.scrollView.subviews lastObject];设置滚动条的样式self.scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;默认情况下UIScrollView有⼀个回弹效果只要设置了contentSize就有回弹效果self.scrollView.bounces = YES;设置默认是否有回弹效果 (默认就是没有设置contentSize的情况)垂直⽅向可以回弹下拉刷新哪怕没有设置contentSize也可以有回弹效果self.scrollView.alwaysBounceVertical = YES;self.scrollView.alwaysBounceHorizontal = YES;3.设置边距self.scrollView.contentInset = UIEdgeInsetsMake(10, 20, 30, 40);注意点:contentOffset移动的位置是⼀个临时的位置, 只要轻轻拖拽⼀下就会回到默认的位置CGFloat offsetX = self.sc.contentSize.width - self.sc.frame.size.width;CGFloat offsetY = self.sc.contentSize.height - self.sc.frame.size.height;[self.sc setContentOffset:CGPointMake(offsetX, offsetY) animated:YES];-----------------------代理:----------------------------如何监听⼀个控件的变化/状态1. ⾸先需要查看该控件的头⽂件, 看它继承于谁1.1如果继承于UIControl, 那么就可以通过addTarget来监听1.2如果继承于UIView, 那么必须通过代理来监听——————————————————————————————————————————————————————代理协议的规律:以控件的类名开头, 后⾯加上delegate代理协议中的⽅法名的规律:⼀般以控件名称去掉类前缀开头代理协议中的⽅法参数的规律:谁触发事件, 就将谁传递进来如何监听UIScrollView的变化1.成为UIScrollView的代理2.遵守UIScrollView的协议3.实现UIScrollView协议中的⽅法代理作⽤:当A对象想监听B对象的变化 , 那么可以让A成为B的代理当B对象发⽣⼀些变化想通知A对象, 那么可以让A成为B的代理/**************************代理⽅法***********************************/#pragma mark - UIScrollViewDelegate// 只要成为了UIScrollView的代理, 遵守代理协议, 实现协议中的⽅法// 当UIScrollView发⽣⼀些变化的时候, 系统就会⾃动调⽤这些代理⽅法// scrollViewDidScroll⽅法什么时候调⽤?// 只要UIScrollView滚动了, 系统就会⾃动调⽤1 - (void)scrollViewDidScroll:(UIScrollView *)scrollView23 {45 NSLog(@"%@", NSStringFromCGPoint(self.sc.contentOffset));67 }891011 // 只要⽤户准备开始拖拽了就会调⽤1213 - (void)scrollViewWillBeginDragging:(nonnull UIScrollView *)scrollView1415 {1617 }// ⽤户已经结束拖拽, 代表⽤户已经松⼿了// 系统调⽤了该⽅法并不代表着,UIScrollView已经停⽌滚动了// 每次调⽤停⽌拖拽⽅法时 ,系统都会传⼊⼀个当前是否有惯性的参数// 我们可以判断该参数是否为YES, 如果是YES代表当前UIScrollView有惯性, 停⽌拖拽并不会停⽌滚动, 需要在停⽌减速⽅法中监听什么时候真正的停⽌1 - (void)scrollViewDidEndDragging:(nonnull UIScrollView *)scrollView willDecelerate:(BOOL)decelerate23 {45 NSLog(@"decelerate = %i", decelerate);67 if (decelerate == NO) {89 NSLog(@"没有惯性, 可以在当前⽅法监听UIScrollView是否停⽌滚动");1011 [self scrollViewDidEndDecelerating:scrollView];1213 }else{1415 NSLog(@"有惯性, 需要在减速结束⽅法中监听UIScrollView是否停⽌滚动");1617 }1819 }2021 // UIScrollView已经停⽌减速了2223 // 只有执⾏了这个⽅法才代表UIScrollView已经停⽌滚动了2425 - (void)scrollViewDidEndDecelerating:(nonnull UIScrollView *)scrollView2627 {2829 NSLog(@"UIScrollView停⽌滚动了");3031 }结合前⾯MVC中的九宫格案例使⽤UIScrollView实现,并且设置滚动到对应的位置: //6.设置shopsView的滚动范围1 //添加滚动范围23 if (self.row > 2) {45 self.shopsView.contentSize = CGSizeMake(0, (self.row + 1) * (shopHeight + RowMargin));67 //开始滚动891011 CGPoint offset = CGPointMake(0, (self.row - 2) * (shopHeight + RowMargin));1213 [self.shopsView setContentOffset:offset animated:YES];1415 }注意:如果想在UIScrollView停⽌滚动之后做⼀些操作, 有两种情况1.没有惯性的情况: 只会调⽤停⽌拖拽的⽅法, 不会调⽤停⽌减速的⽅法2.有惯性的情况: 既会调⽤停⽌拖拽的⽅法, 也会调⽤停⽌减速的⽅法所以: 以后要判断UIScrollView是否停⽌滚动, 需要同时重写两个⽅法2.1scrollViewDidEndDragging2.2scrollViewDidEndDecelerating缩放:要想缩放图⽚分为两步1.成为代理, 通过代理⽅法告诉UIScrollView要缩放哪⼀个⼦控件2.设最⼤置⼦控件和最⼩的缩放⽐例}// 因为UISrollView中可能有多个⼦控件// 那么UISrollView就搞不清楚到底要缩放哪⼀个⼦控件// 想要缩放, 必须明确的告诉UISrollView要缩放哪⼀个控件/**************************缩放代理⽅法***********************************/#pragma mark - UIScrollViewDelegate1 // 在此⽅法中告诉UISrollView要缩放哪⼀个控件3 - (nullable UIView *)viewForZoomingInScrollView:(nonnull UIScrollView *)scrollView45 {67 return self.iv;89 }1011 // 缩放的过程中调⽤1213 // 和上午学习的scrollViewDidScroll⼀样, 只要缩放⼀点点就会调⽤1415 - (void)scrollViewDidZoom:(nonnull UIScrollView *)scrollView1617 {1819 NSLog(@"%s", __func__);2021 }2223 // 缩放结束时调⽤2425 - (void)scrollViewDidEndZooming:(nonnull UIScrollView *)scrollView withView:(nullable UIView *)view atScale:(CGFloat)scale2627 {2829 NSLog(@"%s", __func__);3031 }综合案例:在iOS开发中UIScrollView使⽤最多的地⽅也就是结合pageControl实现页⾯的轮播,⽐如新特性或者⼴告还有⼀些就是关于图⽚浏览什么的。

Android中TextView实现垂直滚动和上下滚动效果

Android中TextView实现垂直滚动和上下滚动效果

Android中TextView实现垂直滚动和上下滚动效果布局⾥⾯就是两个⾃定义的TextView,上⾯的左右滑动的是AutoHorizontalScrollTextView;下⾯上下滚动的是AutoVerticalScrollTextView;上⾯左右滑动的⾮常好实现,直接把AutoHorizontalScrollTextView复制到项⽬中,复制全类名到布局⽂件中,和系统TextView⼀样,只需设置⽂本其他什么都不⽤设置;下⾯垂直滚动的AutoVerticalScrollTextView相⽐AutoHorizontalScrollTextView稍微⿇烦⼀点;但是也⾮常简单;如果在项⽬中使⽤的话直接把AutoVerticalScrollTextView复制到项⽬中;有些属性在布局⽂件中没有办法设置,需要在makeView()⽅法中设置:现在这个字体是⽩⾊的,如果不需要去掉//这⾥返回的TextView,就是我们看到的View,可以设置⾃⼰想要的效果public View makeView() {TextView textView = new TextView(mContext);textView.setGravity(Gravity.LEFT);textView.setTextSize(20);textView.setSingleLine(true);textView.setGravity(Gravity.CENTER_VERTICAL);textView.setEllipsize(TextUtils.TruncateAt.END);textView.setTextColor(Color.WHITE);return textView;}接下来看下布局⽂件:<LinearLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><!--左右滚动的textview--><.autotextview.View.AutoHorizontalScrollTextViewandroid:textSize="20sp"android:background="#000000"android:textColor="#ffffff"android:id="@+id/textview"android:layout_width="match_parent"android:layout_height="wrap_content"android:singleLine="true"/><!--上下滚动的TextView--><.autotextview.View.AutoVerticalScrollTextViewandroid:id="@+id/textview_auto_roll"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#000000"android:padding="5dp"/></LinearLayout>布局⽂件就⾮常简单了,接下来说下两个View具体怎么使⽤:左右滚动的TextView,直接设置⼀个TextView即可;horizontalScrollTV = (AutoHorizontalScrollTextView) findViewById(R.id.textview);horizontalScrollTV.setText(titleStr);⽽垂直滚动的TextView需要的是⼀个数组,当执⾏next()⽅法的时候会执⾏动画切换下⼀个数据;在项⽬中我直接定义了⼀个计时器,每隔2秒发送⼀个消息,然后执⾏AutoVerTicalScrollTextView.next();private String[] strings={"我的剑,就是你的剑!","俺也是从⽯头⾥蹦出来得!","我⽤双⼿成就你的梦想!","⼈在塔在!","犯我德邦者,虽远必诛!","我会让你看看什么叫残忍!","我的⼤⼑早已饥渴难耐了!"}; verticalScrollTV = (AutoVerticalScrollTextView) findViewById(R.id.textview_auto_roll);verticalScrollTV.setText(strings[0]);new Thread(){@Overridepublic void run() {while (isRunning){SystemClock.sleep(3000);handler.sendEmptyMessage(199);}}}.start();private Handler handler = new Handler() {public void handleMessage(Message msg) {if (msg.what == 199) {verticalScrollTV.next();number++;verticalScrollTV.setText(strings[number%strings.length]);}}};点击事件是后期加上去的,在MainActivity的initView()⽅法中添加以下代码:verticalScrollTV.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this,strings[number%strings.length],Toast.LENGTH_SHORT).show();}});以上所述是⼩编给⼤家介绍的Android中TextView实现垂直滚动效和上下滚动效果,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。

ant-design官方文档中对于横向滚动条的用法

ant-design官方文档中对于横向滚动条的用法

ant-design官方文档中对于横向滚动条的用法摘要:I.引言- 介绍Ant Design- 介绍横向滚动条II.横向滚动条的组件- 定义横向滚动条组件- 横向滚动条的属性III.横向滚动条的使用- 在Ant Design 中的使用- 示例代码IV.横向滚动条的CSS 样式- 定制滚动条样式- 示例代码V.横向滚动条的常见问题- 问题和解决方案- 示例代码VI.结论- 总结横向滚动条的重要性和使用方法正文:I.引言Ant Design 是阿里巴巴集团旗下的一款UI 设计语言,它提供了一整套企业级的UI 设计规范和组件。

在Ant Design 中,横向滚动条是一个常用的组件,它可以在页面中实现水平滚动的交互效果。

II.横向滚动条的组件在Ant Design 中,横向滚动条组件名为“HorizontalScrollbar”。

它是一个用于实现水平滚动的组件,可以包含多个子组件,如文本、图片等。

横向滚动条的属性包括:- width:滚动条的宽度- height:滚动条的高度- scroll-y:是否支持垂直滚动- children:滚动条的子组件III.横向滚动条的使用在Ant Design 中,横向滚动条的使用非常简单。

首先,需要在页面中引入Ant Design 的样式和组件库:```import "antd/dist/antd.css";import { HorizontalScrollbar } from "antd";```然后,在页面中使用横向滚动条组件:```<HorizontalScrollbarwidth={1000}height={30}scroll-y={false}children={<div>内容</div>}/>```IV.横向滚动条的CSS 样式Ant Design 提供了许多预定义的CSS 样式,可以方便地定制横向滚动条的样式。

js中scroll的用法

js中scroll的用法

js中scroll的用法JavaScript的scroll方法用于在DOM元素内部滚动到指定位置。

它是Window对象和DOM元素的属性或方法之一。

当页面或元素内容太长以至于无法一次性在视窗内完全展示时,就需要滚动页面或元素内部的内容来查看整个页面或内容。

这时,JavaScript的scroll方法可以帮助我们实现滚动。

scroll方法共有三种形式:scroll()、scrollTo() 和 scrollBy()。

1. scroll方法scroll方法可以在元素的水平和垂直方向上滚动。

语法:element.scroll(x-coord, y-coord)参数说明:x-coord指定了需要滚动的距离,单位是像素(px)。

同样,y-coord也指定了需要滚动的距离,单位也是像素。

使用实例:<p>第一段内容的测试</p><p>第二段内容的测试</p><p>第三段内容的测试</p><p>第四段内容的测试</p><p>第五段内容的测试</p><p>第六段内容的测试</p><p>第七段内容的测试</p><p>第八段内容的测试</p><p>第九段内容的测试</p><p>第十段内容的测试</p></div><script></script>上述代码包含一个div容器,它是一个滚动条。

在JavaScript代码中,我们指定了需要垂直方向下滚动200像素(px),并指定了需要水平方向右滚动200像素(px)。

2. scrollTo方法scrollTo方法与scroll方法作用相同,也可以在元素的水平和垂直方向上滚动。

语法:element.scrollTo(x-coord, y-coord)参数说明:x-coord指定了需要滚动的距离,单位是像素(px)。

react-scroll-horizontal 用法

react-scroll-horizontal 用法

react-scroll-horizontal用法"react-scroll-horizontal"是一个React库,用于在水平方向上实现滚动效果。

以下是使用该库的一般步骤:1.安装:首先,在你的React项目中安装`react-scroll-horizontal`。

可以使用npm或yarn完成安装:```bashnpm install react-scroll-horizontal#或者yarn add react-scroll-horizontal```2.导入组件:在你的React组件中导入`HorizontalScroll`组件:```javascriptimport HorizontalScroll from'react-scroll-horizontal';```3.使用组件:在JSX中使用`HorizontalScroll`组件,并将你想要滚动的内容作为子组件传递给它。

以下是一个简单的例子:```javascriptimport React from'react';import HorizontalScroll from'react-scroll-horizontal';const ScrollableContent=()=>{return(<div style={{width:'100%',height:'100%',display:'flex'}}>{/*Your content here*/}{/*例如:*/}<div style={{width:'800px',height:'100%',backgroundColor:'lightblue'}}>Content1</div><div style={{width:'800px',height:'100%',backgroundColor:'lightgreen'}}>Content2</div>{/*...more content...*/}</div>);};const App=()=>{return(<div><h1>Horizontal Scroll Example</h1><HorizontalScroll><ScrollableContent/></HorizontalScroll></div>);};export default App;```这个例子中,`ScrollableContent`组件包含了水平滚动的内容,然后通过`HorizontalScroll`包裹起来,从而实现水平滚动效果。

js中滚动条的方法

js中滚动条的方法

js中滚动条的方法
在JavaScript中,可以使用以下方法来操作滚动条:
1. `()`:将窗口滚动到指定的位置。

它接受两个参数,分别是水平位置和垂直位置。

```javascript
(x-coord, y-coord);
```
2. `()`:相对于当前滚动位置向下或向右滚动窗口。

它也接受两个参数,分别是水平滚动距离和垂直滚动距离。

```javascript
(x-coord, y-coord);
```
3. `()`:与`()`类似,但它接受一个对象作为参数,该对象包含`left`和`top`属性,分别表示水平位置和垂直位置。

```javascript
({left: x-coord, top: y-coord});
```
4. ``和``:这两个属性分别表示窗口的垂直滚动距离和水平滚动距离。

可以设置它们的值来滚动窗口。

```javascript
= y-coord;
= x-coord;
```
5. `()`:将指定的元素滚动到视口中。

它接受一个可选参数,该参数可以是一个对象,包含`behavior`、`block`和`inline`属性,用于控制滚动行为。

```javascript
({behavior: "smooth", block: "center", inline: "nearest"});
```
这些方法可以帮助您在JavaScript中操作滚动条,根据需要滚动窗口或元素。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三、公共方法public void addView (View child)添加一个子视图。

若这个子视图没有被设置布局参数,则使用ViewGroup的缺省参数。

参数child 要添加的子视图public void addView (View child, int index)添加一个子视图。

若这个子视图没有被设置布局参数,则使用ViewGroup的缺省参数。

参数child 要添加的子视图index 子视图要加入的位置public void addView (View child, int index, youtParams params)添加一个带有指定布局参数的子视图。

参数child 要添加的子视图index 子视图要加入的位置params 子视图的布局参数public void addView (View child, youtParams params)添加一个带有指定布局参数的子视图。

参数child 要添加的子视图params 子视图的布局参数public boolean arrowScroll (int direction)响应点击左右箭头时对滚动条的处理。

参数direction The direction corresponding to the arrow key that was pressed 箭头按键所表示的方向返回值若此事件成功完成,则返回true;否则返回false。

public void computeScroll ()被父视图调用,用于必要时候对其子视图的值(mScrollX和mScrollY)进行更新。

典型的情况如:父视图中某个子视图使用一个Scroller对象来实现滚动操作,会使得此方法被调用。

public boolean dispatchKeyEvent (KeyEvent event)按照可以获得焦点的顺序(从视图树的顶端到当前获得焦点的视图),分派一个按键事件给下一个视图。

若此视图为焦点视图,事件将会分派给它自己。

否则它将按照顺序,分派给下一个节点。

此方法同时触动所有按键监听器。

参数event 被分派的事件.返回值若事件被处理,则返回true;否则为falsepublic void draw (Canvas canvas)手动绘制视图(及其子视图)到指定的画布(Canvas)。

这个视图必须在调用这个函数之前做好了整体布局。

当实现一个视图时,不需要继承这个方法;相反,你应该实现onDraw(Canvas)方法。

参数canvas 绘制视图的画布public boolean executeKeyEvent (KeyEvent event)需要通过按键事件来实现滚动操作时,可以调用此方法。

效果类似于由视图树型结构分派事件。

参数event 需要执行的事件返回值若事件被处理,则返回true;否则为falsepublic void fling (int velocityX)滚动视图的fling手势。

参数velocityX 方向的初始速率。

正值表示手指/光标向屏幕右边滑动,而内容相对向左滚动。

public boolean fullScroll (int direction)处理按下"home/end"快捷键之后的滚动响应。

此方法会将视图移左或移右,同时将焦点赋予移动后可视的最左或最右的组件。

如果没有任何组件适合得到焦点,此scrollview 将收回焦点。

参数direction 滚动方向:FOCUS_LEFT表示向视图的左边移动,FOCUS_RIGHT表示向视图的右边移动返回值若此方法消耗(consumed)了按键事件则返回true,否则返回false。

public int getMaxScrollAmount ()返回值按左右箭头时视图可以滚动的最大值。

public boolean isFillViewport ()表示此ScrollView的内容是否被拉伸以适应视口(viewport)的大小。

返回值若内容填充了视口则返回true,否则返回false。

public boolean isSmoothScrollingEnabled ()返回值按箭头方向滚动时,是否显示滚动的平滑效果。

public boolean onInterceptTouchEvent (MotionEvent ev)使用此方法可以拦截所有触摸屏动作引发的事件。

这意味着你可以监视分派给子项的事件,并且可以拿到任何当前手势的所有权。

使用此方法需谨慎。

因为它与View.onTouchEvent(MotionEvent)有相当复杂的交互影响。

这两者都必须同时正确地实现。

事件将按以下顺序来被方法接收:1.接收到down事件2.事件将被视图组的一个子视图处理,或者被传递给自己的onTouchEvent()方法处理;这意味着你必须实现onTouchEvent(),并且返回true,这样才可以接着接受到其他的手势(而不是寻求一个父视图来处理它)。

onTouchEvent()返回true后,你将不再接受到onInterceptTouchEvent()的任何事件,同时所有对触摸动作的处理必须像往常一样在onTouchEvent()中进行。

3.如果返回false,则接下来的每个事件(所有的up事件,包含最后一个up)将会首先被传递到这里,然后到目标对象view的onTouchEvent()。

4.如果返回ture,你将不会接收到以下任何事件:目标view将会接收到相同的事件,但是带着ACTION_CANCEL的动作。

所有在此之后的事件将会被传递到你的onTouchEvent()方法中,并且不再在这里出现。

参数ev 沿着树型结构往下分派的动作事件返回值若将动作事件从子视图中截获并通过onTouchEvent()将他们分派给当前ViewGroup,则返回true。

当前目标将收到一个ACTION_CANCEL事件,并且不再会有其他消息被传递到这里。

public boolean onTouchEvent (MotionEvent ev)此方法用于处理触摸屏的动作事件。

参数ev 动作事件返回值若事件被成功处理,则返回true;否则返回falsepublic boolean pageScroll (int direction)处理按下"page up/down"快捷键之后的滚动响应。

此方法会将视图往左或往右滚动一个页面的距离,同时将焦点赋予移动后可视的最左或最右的组件。

如果没有任何组件适合得到焦点,此scrollview将收回焦点。

参数direction 滚动方向:FOCUS_LEFT表示向视图的左边移动一个页面FOCUS_RIGHT表示向视图的右边移动一个页面返回值若此方法处理(consumed)了按键事件则返回true,否则返回false。

public void requestChildFocus (View child, View focused)当父视图的一个子视图要获得焦点时,调用此方法。

参数child 要获得焦点的子视图。

此视图将包含焦点视图,但其本身不必为焦点。

focused 事实上拥有焦点的子视图的下层视图。

public boolean requestChildRectangleOnScreen (View child, Rect rectangle, boolean immediate)当组里的某个子视图需要被定位在屏幕的某个矩形范围时,调用此方法。

重载此方法的ViewGroup可确认以下几点:*子项目将是组里的直系子项*矩形将在子项目的坐标体系中重载此方法的ViewGroup应该支持以下几点:*若矩形已经是可见的,则没有东西会改变*为使矩形区域全部可见,视图将可以被滚动显示参数child 发出请求的子视图rectangle 子项目坐标系内的矩形,即此子项目希望在屏幕上的定位immediate 设为true,则禁止动画和平滑移动滚动条返回值进行了滚动操作的这个组(group),是否处理此操作public void requestLayout ()当出现使视图布局失效的改变时,调用此方法。

它将规划一个视图树的布局路径。

public void scrollTo (int x, int y)设置视图滚动后的位置。

这将引起onScrollChanged(int,int,int,int)的调用,同时使此视图失效。

此版本同时将滚动锁定于子视图的范围。

参数x 要滚动到的x位置y 要滚动到的y位置public void setFillViewport (boolean fillViewport)设置此滚动视图是否将内容宽度拉伸来适应视口(viewport)。

参数fillViewport 设置为true表示将拉伸内容宽度;否则会设置为false。

public void setOverScrollMode (int mode)为视图设置over-scroll模式。

有效的over-scroll模式有OVER_SCROLL_ALWAYS(缺省值),OVER_SCROLL_IF_CONTENT_SCROLLS(只允许当视图内容大过容器时,进行over-scrolling)和OVER_SCROLL_NEVER。

只有当视图可以滚动时,此项设置才起作用。

参数mode 视图的新over-scroll模式值public void setSmoothScrollingEnabled (boolean smoothScrollingEnabled)设置是否呈现按下箭头后的平滑滚动效果(动画效果)。

参数smoothScrollingEnabled 设置是否呈现平滑滚动效果public final void smoothScrollBy (int dx, int dy)类似scrollBy(int, int),但是呈现平滑滚动,而非瞬间滚动(译者注:瞬间滚动——指不显示滚动过程,直接显示滚动后达到的位置)。

参数dx 要滚动的X轴像素差值(译者注:横向像素差值)dy 要滚动的Y轴像素差值(译者注:纵向像素差值)public final void smoothScrollTo (int x, int y)类似scrollTo(int, int),但是呈现平滑滚动,而不是瞬间滚动。

参数x 滚动要到达位置的X轴值y 滚动要到达位置的Y轴值四、受保护方法protected int computeHorizontalScrollOffset ()计算水平方向滚动条的滑块的偏移值。

此值用来计算滚动时滑块的位置。

偏移值的范围可以以任何单位表示,但必须与computeHorizontalScrollRange()和computeHorizontalScrollExtent()的单位一致。

相关文档
最新文档