android : 如何实现移动进入一个view的监听事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android : 如何实现移动进入一个view的监听事件相关的知识,希望对你有一定的参考价值。

我现在有一个tablelayout,里面有很多的方框的view对象,我可以在tablelayout上面滑动,滑动过程中,经过的view对象要输出对应的信息。
但是我现在无法实现如何实现移动进入一个view的监听事件,而且要监听到经过的每一个view,不能只是起点和终点。
最好给个例子,不行给个思路也行。

(1)绑定Adapter,需要判定View组件的子Item,分别注册AdapterView.onItemclickListener不就可以了,里面的参数回调可以区分点击的是那一个子Item;
(2)如果不需要区分子Item,给这两个View组件分别注册View.onClickListener就可以了;或者让Activity实现View.onClickListener接口,在给这两个View组件注册监听,然后在onClick方法里写个switch语句,就可以按照case R.id.xxx 这样做想做的处理了。
参考技术A 没读懂你的意思 移动进入一个view
移动table的时候进入其中的一个view?
还是只 移动的时候 进入屏幕的view?
按照机制而言 当table滑动的时候 下方未显示的view 显示的时候才会创建,所以 你可以将你的坚挺方法放在 生成的时候,adapter中追问

简单点说就是 :有一个view , 我从其他地方滑过这个view,这个view能监听到。。怎么实现

追答

可否理解为你要做 类似 鼠标滑过标题的时候会变成小手的那种效果 不过 就是小手变成了 你的监听事件?
这个感觉应该理论上可以实现,就是分别计算 当前手指与view的位置,同时设置一个线程比对这两个数值 ,相同的时候进入监听事件

追问

也行,也是一种思路 ,谢谢

本回答被提问者和网友采纳

android下滑动返回上一个页面如何实现

目前不管ANDROID,IOS都采基本采用手指朝右滑动来返回上一个页面。
例子: 网易客户端,打开一个具体新闻页面后,右滑返回到主菜单。或者IOS下微信消息列表,点击一个ITEM进入具体消息,然后右滑,返回消息列表。

以上是举得例子。不知道如何在android中实现,是用activity或者new 一个view,然后实现view的手势或者用fragment,哪位大神能够教教,最好有源码或者能把原理讲清楚也是可以的。谢谢

android下滑动返回上一个页面实现的代码如下:
[java] view plaincopy
package org.sunday.slidingreturn;

import com.example.slidingreturn.R;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.LinearLayout;

public class SecondActivity extends Activity implements OnTouchListener

//手指向下滑动时的最小速度
private static final int XSPEED_MIN = 200;

//手指向下滑动时的最小距离
private static final int XDISTANCE_MIN = 150;

//记录手指按下时的横坐标。
private float xDown;

//记录手指移动时的横坐标。
private float xMove;

//用于计算手指滑动的速度。
private VelocityTracker mVelocityTracker;

@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);

Button btn = (Button) findViewById(R.id.btn_second);
btn.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
startActivity(new Intent(SecondActivity.this, ThirdActivity.class));
overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);

);

LinearLayout ll = (LinearLayout) findViewById(R.id.ll_second);
ll.setOnTouchListener(this);

// 转载请说明出处:http://blog.csdn.net/ff20081528/article/details/17845753
@Override
public boolean onTouch(View v, MotionEvent event)
createVelocityTracker(event);
switch (event.getAction())
case MotionEvent.ACTION_DOWN:
xDown = event.getRawX();
break;
case MotionEvent.ACTION_MOVE:
xMove = event.getRawX();
//活动的距离
int distanceX = (int) (xMove - xDown);
//获取顺时速度
int xSpeed = getScrollVelocity();
//当滑动的距离大于我们设定的最小距离且滑动的瞬间速度大于我们设定的速度时,返回到上一个activity
if(distanceX > XDISTANCE_MIN && xSpeed > XSPEED_MIN)
finish();

break;
case MotionEvent.ACTION_UP:
recycleVelocityTracker();
break;
default:
break;

return true;


/**
* 创建VelocityTracker对象,并将触摸content界面的滑动事件加入到VelocityTracker当中。
*/
private void createVelocityTracker(MotionEvent event)
if (mVelocityTracker == null)
mVelocityTracker = VelocityTracker.obtain();

mVelocityTracker.addMovement(event);


/**
* 回收VelocityTracker对象。
*/
private void recycleVelocityTracker()
mVelocityTracker.recycle();
mVelocityTracker = null;


/**
* 获取手指在content界面滑动的速度。
*
* @return 滑动速度,以每秒钟移动了多少像素值为单位。
*/
private int getScrollVelocity()
mVelocityTracker.computeCurrentVelocity(1000);
int velocity = (int) mVelocityTracker.getXVelocity();
return Math.abs(velocity);

参考技术A

图中的代码够详细了,呵呵、、、

追问

前后2个页面的叠加如何做呢?就是目前的页面要退出,下面的页面要出来,目前的页面叠加在之前的页面上的感觉。

追答

那个就要用到里面的切换动画了。。。一个进,一个出。移除到屏幕外面后,销毁它  finish()。

重点:动画切换,比如显示下一个界面,首先下一个界面进来,然后本身的界面出去。

需要用到的XML文件

展示其中的一个文件代码

本回答被提问者采纳
参考技术B 做好手势的监听就行了,其他的可以是换view或者几个activity来回倒,再加上些动画。
这个网上应该有例子。
参考技术C 最简单的就是Viewpager+fragment追问

有我描述的情况的代码吗?网上找了些,不太一样。谢谢

有我描述的情况的代码吗?网上找了些,不太一样。谢谢

以上是关于android : 如何实现移动进入一个view的监听事件的主要内容,如果未能解决你的问题,请参考以下文章

Android动画上下两个View,下边的往上移动覆盖后,上边的设置GONE,下边的向下移动,上边的显示VISIABLE

android.view.animation - LayoutAnimationController 和 GridLayoutAnimationController

android下滑动返回上一个页面如何实现

android下canvas画的直线怎么移动

Android Scroll 分析

Android View体系实现View滑动的六种方法