android继承activity不能重写onInterceptTouchEvent?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android继承activity不能重写onInterceptTouchEvent?相关的知识,希望对你有一定的参考价值。
android继承activity不能重写onInterceptTouchEvent?
好像继承LinearLayout的就可以重写,如果我的项目是继承activity的话,如果实现重写onInterceptTouchEvent这个事件?
Activity并不是视图类,所以没有onInterceptTouchEvent方法
onInterceptTouchEvent是ViewGroup类的函数,用于截取触摸事件
比如常用的布局LinearLayout,RelativeLayout等等都是ViewGroup的子类,所以可以重写onInterceptTouchEvent方法来实现拦截事件
当onInterceptTouchEvent返回true时,触摸事件传递到此函数结束,不会再向子view传递事件,像很多滑动类型的视图如viewpage,scrollview等都重写了onInterceptTouchEvent函数来实现功能。
参考技术A Activity 不是父类视图是没有onInterceptTouchEvent这个回掉方法的Android里面只有可以作为双亲的视图才会有onInterceptTouchEvent
意思是阻止子事件向子视图传递,如果你是想截获Touch事件的话可以重写
Activity的dispatchTouchEvent,这个是表层的Touch的第一入口本回答被提问者采纳 参考技术B onInterceptTouchEvent这个事件是LinearLayout的布局的一个事件,如果你想重写他的话,是跟activity没什么关系的,你可以直接自定义一个LinearLayout,然后重写那个方法,然后在布局文件里面使用你的自定义布局就ok了。追问
不是很懂,我是Android菜鸟来的,可以详细说说吗?万分感谢 。。。
参考技术C 这个方法是在View里面写的Activity是启动View的 你觉得能写么? 可以定义一个View然后在View里面写 参考技术D getWindow().getDecorView() 这个就是获取你的activity最外层view的函数。绑定到这个上面就行了追问怎么绑定到getWindow().getDecorView()这个上面呢?不是很懂哎。
追答好吧,是我没看仔细,你为什么要实现这个onInterceptTouchEvent事件呢?要实现什么功能?
继承中静态方法不能被重写
本文链接:https://blog.csdn.net/gao_zhennan/article/details/72892946
解释的很清楚
答案很明确:java的静态方法不能被重写。
静态成员(方法或属性)是类的成员存放在栈中,类可以直接调用(是属于类的静态成员,当然对象也可以调用,只是说你可以使用而已);实例成员是对象的成员,存放在堆中,只能被对象调用。
重写的目的在于根据创造对象的所属类型不同而表现出多态。因为静态方法无需创建对象即可使用。没有对象,重写所需要的“对象所属类型” 这一要素不存在,因此无法被重写。
千言万语,不如代码:
class A public static show() System.out.println(" Static Method of A"); class B extends A public static show() System.out.println("Static Method of B");
结果,很明显了。如果是重写的话,x.show的结果应该是Static Method of B,从运行结果来看show的结果是和对象的应用及所属类有关。所以说静态成员是属于类的。
那么,怎么描述B中的show和A中的show的关系呢?不是重写,其实也不是重载(验证方法参照上面的代码)
其实他们的关系可以成为:重定义!即重新定义类中的成员。
举个例子:
1子类重新定义从超类获得的属性
class A public int x=5; class B extends A public boolean x=true; A a=new B(); B b=new B();
由于B中重新定义了名为x的属性,从A中继承而来的X就被屏蔽了。但依然存在,可以通过super.x来获得其值
2,子类定义的方法与超类的私有方法或者静态方法同名
对超类的私有方法。由于无法派生给子类,因此子类在定义与该类方法同名的方法时不存在任何前提限制。另外,静态方法不能重写但能重定义!
以上是关于android继承activity不能重写onInterceptTouchEvent?的主要内容,如果未能解决你的问题,请参考以下文章