zoukankan      html  css  js  c++  java
  • 关于fragment点击能穿透问题

    本人在做项目的过程中遇到的这个问题,然后就在网上百度了一下,之后也是在csdn上看到博友发过此类问题的解决的方法,所以特此又一次总结一下。顺便也给自己提个醒,避免出现此类问题。好!

    以下我们说一下问题:


    举例:当我们建立一个fragment A的时候须要点击跳转到fragment B中,为了返回时不又一次载入fragment A所以我们会使用add的方法来讲fragment A增加到后退栈中。


    当在fragment B中点击一个空白区域。恰好空白区域相相应的位置在fragment A中有相应的控件,则fragment A会响应到点击事件。有的时候还是fragmentB和fragment A重叠到一起显示(fragmentB透明)


    以下解决重叠到一起的问题:

    仅仅要在fragment的布局文件的根节点设置一下background就能够了,除了trasparent外都能够使两个fragment不在重叠显示到一起了。


    以下一个点击能穿透的问题:

    仅仅要我们在fragment中重写View.OnTouchListener的OnTouch方法(当然fragment要实现OnTouchListener监听)。将返回值设置为true。

    @Override
    	public boolean onTouch(View v, MotionEvent event) {
    		return true;
    	}
    原因:

    Fragment是存在于Activity的碎片,所以Fragment的onTouch的方法有时候不能全然的响应到或者根本就不可能响应到。所有让Activity给拦截掉了,假设这样。我们有一种比較保守的解决方法。就是再加入一步操作,在onCreateView方法中的view里面加入OnTouchListener,这样就能让fragment点击的时候不再穿透到上一层的fragment中去了,直接在当前的fragment层给消化掉了。

    @Override
    	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    		View view = inflater.inflate(R.layout.activity_bs_bookstore, null);
    		view.setOnTouchListener(this);
    }




  • 相关阅读:
    C#库
    大话设计模式--简单工厂模式
    weka平台下手动造.arff的数据
    NIM博弈的必胜取法
    求一个全排列函数: 如p([1,2,3])输出:[123],[132],[213],[231],[312],[321]. 求一个组合函数 如p([1,2,3])输出:[1],[2],[3],[1,2],[2,3],[1,3],[1,2,3]
    哥德巴赫猜想
    C#格式化输出
    meta文件里指定资源
    chromatic aberration
    uber shader
  • 原文地址:https://www.cnblogs.com/lytwajue/p/6789698.html
Copyright © 2011-2022 走看看