首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EditText没有捕获ViewFlipper flings?

EditText是Android开发中常用的一个控件,用于用户输入文本。ViewFlipper是Android中的一个布局容器,可以实现多个子视图之间的切换效果。在默认情况下,EditText并不能直接捕获ViewFlipper的滑动操作(flings)。

要实现EditText捕获ViewFlipper的滑动操作,可以通过以下步骤进行:

  1. 监听ViewFlipper的滑动事件:可以通过为ViewFlipper添加OnTouchListener来监听滑动事件。在OnTouchListener中,可以根据滑动的方向和距离来判断用户的意图。
  2. 判断滑动意图:根据滑动的方向和距离,判断用户是想滑动ViewFlipper还是输入文本。可以通过记录滑动开始和结束的坐标,计算滑动的距离和方向。
  3. 拦截滑动事件:如果判断用户是想滑动ViewFlipper,可以拦截滑动事件,阻止EditText获取焦点并捕获滑动操作。可以通过调用ViewFlipper的requestDisallowInterceptTouchEvent方法来实现。

以下是一个示例代码:

代码语言:java
复制
ViewFlipper viewFlipper = findViewById(R.id.viewFlipper);
EditText editText = findViewById(R.id.editText);

viewFlipper.setOnTouchListener(new View.OnTouchListener() {
    private float startX;
    private float startY;

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                startX = event.getX();
                startY = event.getY();
                break;
            case MotionEvent.ACTION_MOVE:
                float endX = event.getX();
                float endY = event.getY();
                float distanceX = Math.abs(endX - startX);
                float distanceY = Math.abs(endY - startY);
                if (distanceX > distanceY) {
                    // 用户水平滑动,拦截事件
                    viewFlipper.requestDisallowInterceptTouchEvent(true);
                }
                break;
            case MotionEvent.ACTION_UP:
                viewFlipper.requestDisallowInterceptTouchEvent(false);
                break;
        }
        return false;
    }
});

这样,当用户在ViewFlipper上进行水平滑动时,EditText将不会获取焦点,从而实现了EditText不捕获ViewFlipper的滑动操作。

关于EditText、ViewFlipper以及其他Android开发相关的知识,您可以参考腾讯云的文档和产品介绍:

请注意,以上链接仅为示例,实际使用时请根据您的需求和腾讯云的产品文档进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 2014-11-3Android学习------利用ViewFlipper实现滑动翻页的效果--------GIF动画实现

    非常清楚的看清效果,觉得很好,今天的学习源码是网上找的源码 百度搜就知道很多下载的地方 网上源码的名字叫:android gif模式和图片展现模式 图片展现神器.zip 我的博客写的比较乱,如果本篇文章没有看懂...,请先看上篇文章,地址:http://blog.csdn.net/u014737138/article/details/40858705 写这篇文章的方法就是想看下ViewFlipper和ViewPager...定义ViewPager对象和手势对象, private ViewFlipper viewFlipper = null; private GestureDetector gestureDetector...初始化处理: viewFlipper = (ViewFlipper) this.findViewById(R.id.viewflipper); gestureDetector = new GestureDetector..., R.anim.push_left_out)); 首先是去设置ViewFlipper对象,如果是向左滑,动画加载工具去加载这个动画 然后把下个视图显示出来:this.viewFlipper.showNext

    66420

    Android开发笔记(二十一)横幅轮播页Banner

    ViewFlipper的概念 设计ViewFlipper的初衷就是给视图翻转实现动画功能,与ViewPager相比,ViewFlipper是自动翻页动画,而ViewPager是手工翻页动画。...2、自动翻页 ViewPager没有可以设置自动翻页的方法,得通过Handler机制来定时调用翻页动作。...3、多个子页面视图的适配器 ViewPager可调用setAdapter方法统一设置子页面,但ViewFlipper来源自FrameLayout,所以没有适配器的说法。...4、页面滑动的监听器 ViewPager可调用setOnPageChangeListener方法设置页面滑动监听器,而ViewFlipper没有专门的滑动监听器,只能通过动画监听器AnimationListener...5、多页面的的页码指示器 ViewPager有对应的PagerTabStrip和PagerTitleStrip,可以自动显示页码文字;ViewFlipper没有相关的页码类,如果需要的话,只能自己定义一个新类

    3.5K30

    【Android初级】如何实现一个比相册更高大上的左右滑动特效

    在Android里面,想要实现一个类似相册的左右滑动效果,我们除了可以用Gallery、HorizontalScrollView、ViewPager等控件,还可以用一个叫做 ViewFlipper...本次功能要实现的两个基本效果 ---- 最基本的左右滑动效果 从屏幕的45度方向进入和退出的效果 实现思路 ---- 按照 ViewFlipper 的源码说明,它是将两个或多个View用动画展示出来。...,设置起始的横纵坐标值 为了让效果明显,我会设置 ViewFlipper 的进入和退出屏幕的动画,并且在左滑时呈现一个动画、右滑时呈现另一个动画(需要判断是左滑还是右滑:重写 onTouchEvent...可以看到,这个左右滑动效果没有任何酷炫的地方。...ViewFlipper中的 View 就位于象限的中心位置。因此,如果动画从左上角进入,那么它的起始横纵坐标就是(-1,-1)。大家可以按照这个思路去实现自己想要的动效。

    85910

    网络图片查看器

    界面布局LinerLayout线性布局,ImageView控件,EditText控件 hint属性提示信息,Button控件。...layout_weight=””属性,权重,只有控件的宽度和高度为0的时候才代表权重,否则它代表渲染的优先级,值越大优先级越低,默认是0,先渲染其他控件 singleLine属性 单行 业务逻辑,获取EditText...的值放到ImageView里,实质上是http的get请求 获取EditText对象,通过findViewById() 获取值,通过调用EditText对象的getText()方法,调用toString...方法 调用TextUtils类的isEmpty()方法,判断是否为空,为空就Toast一下 发送get请求 获取Url对象,通过new Url(path),参数:path是String的路径,这里需要捕获异常...super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_path=(EditText

    1.6K50

    移动开发之实现图片轮播效果

    我记得一周前有人在程序员交流群里问过,有没有图片轮播的demo,当时我说自己试着去写写,一周后我再写个demo,分享给大家。今天我就是来兑现承诺了。...对于图片轮播实现方法,各种各样,今天我分享一下我的实现思路,我是用的ViewFlipper控件,重写了里面的方法,增加了手势判断,既可以做到自动轮播,也可以使用手势左右滑动轮播,效果应该还是可以的。...第一步:重写ViewFlipper 这里的重写主要是重写ViewFlipper里的两个方法,分别是showNext()和showPrevious(),重写这两个方法的目的是在判断手势滑动的时候,调用这里的方法...我们在重写的时候,也定义了一个回调的接口,OnViewFlipperChangeState,在ViewFlipper中重写的方法中调用接口里的方法,进行回调,并处理图片集合或数组里的图片,从而实现了循环轮播...代码如下: public class AdViewFlipper extends ViewFlipper { private OnViewFlipperChangeState listener

    1.6K100

    移动开发之实现图片轮播效果(附:demo)

    我记得一周前有人在程序员交流群里问过,有没有图片轮播的demo,当时我说自己试着去写写,一周后我再写个demo,分享给大家。今天我就是来兑现承诺了。...对于图片轮播实现方法,各种各样,今天我分享一下我的实现思路,我是用的ViewFlipper控件,重写了里面的方法,增加了手势判断,既可以做到自动轮播,也可以使用手势左右滑动轮播,效果应该还是可以的。...第一步:重写ViewFlipper 这里的重写主要是重写ViewFlipper里的两个方法,分别是showNext()和showPrevious(),重写这两个方法的目的是在判断手势滑动的时候,调用这里的方法...我们在重写的时候,也定义了一个回调的接口,OnViewFlipperChangeState,在ViewFlipper中重写的方法中调用接口里的方法,进行回调,并处理图片集合或数组里的图片,从而实现了循环轮播...代码如下: public class AdViewFlipper extends ViewFlipper { private OnViewFlipperChangeState listener

    1.1K20

    Android中EditText setText方法的踩坑实战

    1、平平常常中就这样开始 某一天,我准备做一个搜索功能,这个搜索功能呢大概是在主活动A中,用EditText接收输入,当EditText监听到输入框中内容有变化,跳转到活动B中,活动B中准备有搜索历史记录等等...当时项目挺急的,我弄了半天没弄明白,(我一直以为是A活动因为setText而崩溃了,然而没有log……当然,最终证明似乎不是这样子。)...2、输入内容,执行1,2,3,到启动活动B 3、活动B初始化执行 4 5、 活动B中点击搜索 5,并启动活动A 6、A再一次初始化 执行6 7、问题出来了,为什么会执行7、8、9,此时我们并没有...尽管未能完全解读这个执行顺序,但是,写的程序陷入了一个类似死循环的bug是没有问题的,这也就解开了为什么返回不了A活动的问题,并不是不能返回A,而是返回A之后又跳转到B了。...4、 捕获凶手:setText()方法会触发EditText文本变化的监听 5、解决方案:将setText设置在设置监听之前,或者用setHint也可以。

    2K30
    领券