- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的布局 xml 文件。
...
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/rlt" >
<TextView
android:id="@+id/title_text"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="22dp"
android:layout_centerHorizontal="true"
android:textColor ="#add8e6"
/>
<TextView
android:id="@+id/description"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/tatle_text"
android:layout_marginTop="45dp"
android:textColor = "#e3e4fa"
android:autoLink="email"
android:textColorLink="#fdd017"
/>
...
...
...
...
这是我的 onFling()
:
SimpleOnGestureListener simpleOnGestureListener
= new SimpleOnGestureListener(){
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
final float xDistance = Math.abs(e1.getX() - e2.getX());
final float yDistance = Math.abs(e1.getY() - e2.getY());
if(xDistance > gs.swipe_Max_Distance || yDistance > gs.swipe_Max_Distance)
return false;
Log.v("Help_developers", "Flinging baby!");
velocityX = Math.abs(velocityX);
velocityY = Math.abs(velocityY);
boolean result = false;
if(velocityX > gs.swipe_Min_Velocity && xDistance > gs.swipe_Min_Distance){
if(e1.getX() > e2.getX()) // right to left
{ //Slide to Help_app
Intent i=new Intent(Help_developers.this,Help_app.class);
startActivity(i);
finish();
}
else
{
//Slide to Help_qanda
Intent i=new Intent(Help_developers.this,Help_pending.class);
startActivity(i);
finish();
}
result = true;
}
return result;
}
});
final GestureDetector gestureDetector
= new GestureDetector(simpleOnGestureListener);
rlt.setOnTouchListener(new View.OnTouchListener()
{
public boolean onTouch(View view, MotionEvent event) {
Log.d("test", "clicked!");
if(gestureDetector.onTouchEvent(event)) {
Log.d("test", "gesture detected");
return true;
}
return false;
}
});
rlt 是 RelativeLayout rlt
的 id。
现在 onFling() 中的 throw 不适用于 ID 为 description
的 TextView 中的 attribute android:autoLink="email"。但是,当我删除该属性时,一掷千金。我不知道为什么会这样。该属性如何影响 throw 手势?
编辑GestureListener
本身的 onTouch() 不会被调用。日志永远不会记录在 logcat 中。当属性 android:autoLink="email"存在时。
完整布局 XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/rlt" >
<TextView
android:id="@+id/title_text"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="22dp"
android:layout_centerHorizontal="true"
android:textColor ="#ffffff"
/>
<TextView
android:id="@+id/description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tatle_text"
android:layout_marginTop="45dp"
android:textColor = "#e3e4fa"
android:autoLink="email"
android:textColorLink="#fdd017"
android:
/>
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rlt_touch" />
<Button
android:id="@+id/Home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@drawable/home"
android:text="Home"
/>
</RelativeLayout>
</ScrollView>
最佳答案
而不是像在我的 first answer 中那样关闭 TextView 中的触摸处理,我们可以添加一个透明 View (作为 RelativeLayout 最顶层的 subview )来捕获触摸事件,这样我们就可以有选择地将相关事件转发给 TextView,同时仍然获取所有事件来检测手势:
修改 XML 布局,添加触摸捕获 View :
...
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rlt">
<TextView
android:id="@+id/title_text"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="22dp"
android:layout_centerHorizontal="true"
android:textColor="#add8e6"
android:background="#ff0000" />
<TextView
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/title_text"
android:layout_marginTop="45dp"
android:textColor="#e3e4fa"
android:textColorLink="#fdd017"
android:autoLink="email" />
<!-- our touch-capturing view -->
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rlt_touch" />
</RelativeLayout>
...
修改 Java 代码,将我们的 OnTouchListener 设置为添加的 rlt_touch
View 并添加事件转发代码:
final View rt = findViewById(R.id.rlt_touch);
final TextView tv = (TextView) findViewById(R.id.description);
rt.setOnTouchListener(new OnTouchListener() {
final Rect r = new Rect();
final Point p1 = new Point();
final Point p2 = new Point();
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("test", "clicked!");
if (gestureDetector.onTouchEvent(event)) {
Log.d("test", "gesture detected");
}
// offset touch location into the TextView and forward it if relevant
rt.getGlobalVisibleRect(r, p2);
tv.getGlobalVisibleRect(r, p1);
event.offsetLocation(p2.x - p1.x, p2.y - p1.y);
if (r.contains((int) event.getRawX(), (int) event.getRawY())) {
tv.onTouchEvent(event);
}
return true;
}
});
关于android - GestureListener 不适用于 android :autoLink ="email",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12638512/
我在网上看了很多例子,它们都以这种方式实现了 gesturelistener。我无法让 android 获取手势事件,因为 myText 的值没有改变,而且我在 logcat 中也没有得到任何输出。我
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
更新:查看扩展问题的赏金。 我在 ListView 上设置了一个 GestureDetector。 ListView 是一个完整的 fragment ,来自窗口的一侧并部分覆盖另一个 fragment
这个问题已经有答案了: touchdown held down libgdx (1 个回答) 已关闭 9 年前。 我正在使用 libgdx 来开发 mygame。 我正在使用 GestureListe
我想要在 10 个 Activity 中检测手势。所以我创建了一个实现 OnGestureListener 的类。该类还为 onTouchEvent() 扩展了 GestureDetector。为了将
我将 GestureListener 添加到图像中,我正在尝试像这样缩放 Stack Overflow 答案:How to zoom in and zoom out Images in WP7? 问题
我已经实现了 GestureListener,它工作得很好,但是如何从我的 View 中删除 GestureListener? @Override public boolean onTouchEven
这是我的布局 xml 文件。 ... ... ... ... ... 这是我的 onFling() : SimpleOnGest
有没有人使用 Toolkit.GestureListener 来触发 EventToCommand? 最佳答案 我认为您不能使用 EventToCommand 行为来做到这一点,但我创建了一种行为,可
我不明白如何在 Silverlight 的 cs 代码中使用 Windows Phone Toolkit 中的某些功能(更准确地说,我不明白如何使用 GestureListener)。我看到很多像这样
我是一名优秀的程序员,十分优秀!