• 关于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);
    }




  • 相关阅读:
    五个字符就能让你电脑死机
    易语言e.exe在一些系统运行出错解决方法
    检测是否联网
    JS判断设备的类型
    JavaScript判断移动端及pc端访问不同的网站
    代码片段
    WEB前端知识在乱花渐欲迷人眼的当下,如何分清主次和学习优先级呢?
    说说JSON和JSONP,也许你会豁然开朗
    HTML5 LocalStorage 本地存储
    namenode 和datanode无法启动,错误:FSNamesystem initialization failed. datanode.DataNode: Incompatible namespaceIDs
  • 原文地址:https://www.cnblogs.com/lytwajue/p/6789698.html
Copyright © 2020-2023  润新知