理解python中的Super()(Understanding Super() in python)
class SeaofBTCapp(tk.Tk): def __init__(self, *args, **kwargs): tk.Tk.__init__(self, *args, **kwargs) container = tk.Frame(self)
大家好我想要了解对象和类。 使用
tkinter
,作者创建了一个继承自Tk()
类的类,并继续编写自己的__init__
方法,我假设该方法会覆盖父类'__init__
。 然后作者初始化父母原始的tk.Tk.__init__
方法。作者是否可以使用
super().__init__(*args, **kwargs)
来实现相同的结果?class SeaofBTCapp(tk.Tk): def __init__(self, *args, **kwargs): tk.Tk.__init__(self, *args, **kwargs) container = tk.Frame(self)
Hello all I am trying to understand objects and classes. Using
tkinter
the author has created a class which inherits from theTk()
class oftkinter
and proceeds to write his own__init__
method which I assume overrides the parent class'__init__
. The author then initialises the parents originaltk.Tk.__init__
method.Could the author just have used the
super().__init__(*args, **kwargs)
to achieve the same result?
原文:https://stackoverflow.com/questions/30832766
最满意答案
不要消耗你的触觉传递它;
@Override public boolean dispatchTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { downX = event.getX(); downY = event.getY(); //return false; } case MotionEvent.ACTION_UP: { upX = event.getX(); upY = event.getY(); float deltaX = downX - upX; float deltaY = downY - upY; // swipe horizontal? if (Math.abs(deltaX) > MIN_DISTANCE) { // left or right if (deltaX < 0) { //this.onLeftToRightSwipe(); //((MenuActivity) getActivity()).getSlideoutHelper().close(); return true; } if (deltaX > 0) { //this.onRightToLeftSwipe(); if (mSlideoutHelper != null) mSlideoutHelper.close(); return true; } } else if (Math.abs(deltaX) == 0) { // return false; // We don't consume the event //Single tap implementation } //return true; // no swipe horizontally and no swipe vertically }// case MotionEvent.ACTION_UP: } return super.dispatchTouchEvent(event); }
Dont consume your touch pass it along ;
@Override public boolean dispatchTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { downX = event.getX(); downY = event.getY(); //return false; } case MotionEvent.ACTION_UP: { upX = event.getX(); upY = event.getY(); float deltaX = downX - upX; float deltaY = downY - upY; // swipe horizontal? if (Math.abs(deltaX) > MIN_DISTANCE) { // left or right if (deltaX < 0) { //this.onLeftToRightSwipe(); //((MenuActivity) getActivity()).getSlideoutHelper().close(); return true; } if (deltaX > 0) { //this.onRightToLeftSwipe(); if (mSlideoutHelper != null) mSlideoutHelper.close(); return true; } } else if (Math.abs(deltaX) == 0) { // return false; // We don't consume the event //Single tap implementation } //return true; // no swipe horizontally and no swipe vertically }// case MotionEvent.ACTION_UP: } return super.dispatchTouchEvent(event); }
相关问答
更多-
这是Android支持库中的一个错误。 请参阅此处: https : //code.google.com/p/android/issues/detail?id = 182549 It's a bug in the Android Support Library. See here: https://code.google.com/p/android/issues/detail?id=182549
-
最简单的方法是更换这条线 fragmentManager.beginTransaction().replace(R.id.main_fragment_container, fragment2).addToBackStack(null).commit(); 至 FragmentTransaction ft =fragmentManager.beginTransaction() ft.replace(R.id.main_fragment_container, fragment2) if(fragmentMan ...
-
不要消耗你的触觉传递它; @Override public boolean dispatchTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { downX = event.getX(); downY = event.getY(); ...
-
您应该尝试在onCreateView()显示该对话框,因为这是UI组件在Fragment中显示的位置 I found the solution. To create STATIC vars.These will contain the info that I am going to use in the OnStart() of the Fragment. Before to make the transition of the Fragment, start the Progress Dialog. Af ...
-
几点(进一步到我最初的评论)。 为了生成,我将额外的createElement("span")放在顶部,因为它永远不会被使用。 然后在循环中创建span,而不是spanVar (假设是不需要的)。 对于create element方法,您只需为其提供要进行的元素类型。 function thingyTime() { var count = 15, spanVar, fragment = document.createDocumentFragment(); f ...
-
Fragment to Fragment startAcivityForResult不起作用(Fragment to Fragment startAcivityForResult is not working)[2023-05-24]
添加您的Parent Activity @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); } Add in your Parent Activity @Override protected void onActivityResult(int requestCode ... -
从Fragment访问其他Fragment变量或元素(Accessing to other Fragment variables or elements from Fragment)[2022-09-13]
片段到片段通信基本上是通过一个活动来实现的,该活动通常托管片段,在片段A中定义一个接口,让你的Activity实现该接口。 现在,您可以在Fragment中调用interface方法,并且您的Activity将接收该事件。 现在,在您的活动中,您可以调用第二个片段来更新带有接收值的textview(例如): // You Activity implements your interface which is defined in FragmentA public class YourActivity imp ... -
您可以尝试使用Rect来保存ImageView的边界,然后使用ACTION_MOVE 例如,声明一个Rect对象, private Rect rect; 然后在你的setOnTouchListener() ,初始化Rect并使用ACTION_MOVE检查, v.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View arg0, MotionEvent arg1) { s ...
-
setOnTouchListener不适用于android Fragment(setOnTouchListener is not working for android Fragment)[2023-07-20]
它适用于我: public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_take_attendance, container, false); touchListener(view); .. } private void touchListener( ... -
试试这个,在加载第二个片段时调用方法.addToBackStack(“returnFragment”)并从第一个事务中删除它。 try this, call method .addToBackStack("returnFragment") while loading second fragment and remove it from first transaction.