- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了标准手势检测器,它根据给定的手势更改 TextView 。当我的 XML 仅包含我希望更改的相对布局和 TextView 时,一切正常。然而,当我添加网格布局和一些图标时,手势检测器不再工作,只是没有像以前那样更改 TextView 。代码是;
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/Relative_Layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/homebackground"
tools:context="com.example.james.fitness.MainActivity"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true">
<GridLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:id="@+id/Grid1">
<TextView
android:id="@+id/someText"
android:text="sometext"
android:foregroundGravity="center_vertical|center_horizontal"
android:gravity="center_vertical|center"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleX="5"
android:scaleY="5"
android:textColor="@color/colorAccent" />
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
app:srcCompat="@drawable/fitnessbutton"
android:id="@+id/fitnessbutton"
android:layout_row="1"
android:layout_column="1"
android:layout_columnWeight="1"
android:layout_gravity="fill_horizontal"
android:gravity="center"
android:paddingBottom="100dp" />
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
app:srcCompat="@drawable/drinkbutton"
android:id="@+id/drinkbutton"
android:layout_column="2"
android:layout_row="1"
android:layout_columnWeight="1"
android:layout_gravity="fill_horizontal"
android:gravity="center"
android:paddingBottom="100dp" />
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
app:srcCompat="@drawable/foodbutton"
android:id="@+id/foodbutton"
android:layout_column="3"
android:layout_row="1"
android:layout_columnWeight="1"
android:layout_gravity="fill_horizontal"
android:gravity="center"
android:paddingBottom="100dp" />
</GridLayout>
</RelativeLayout>
还有 Java
import android.app.Activity;
import android.support.v4.view.GestureDetectorCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements
GestureDetector.OnGestureListener,
GestureDetector.OnDoubleTapListener {
private TextView someText;
private GestureDetectorCompat gestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
someText = (TextView)findViewById(R.id.someText);
this.gestureDetector = new GestureDetectorCompat(this, this);
gestureDetector.setOnDoubleTapListener(this);
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
someText.setText("SINGLETAP");
return true;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
someText.setText("DOUBLETAP");
return true;
}
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
someText.setText("DOUBLETAPEVENT");
return true;
}
@Override
public boolean onDown(MotionEvent e) {
someText.setText("DOWN");
return true;
}
@Override
public void onShowPress(MotionEvent e) {
someText.setText("PRESS");
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
someText.setText("SINGLETAPUP");
return true;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
someText.setText("SCROLL");
return true;
}
@Override
public void onLongPress(MotionEvent e) {
someText.setText("LONGPRESS");
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
someText.setText("FLING");
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
return false;
}
}
请注意,如果我注释掉网格布局和 ImageView ,则代码会再次更改 TextView 。我只能假设手势检测器现在埋在网格布局下方,但不确定?
最佳答案
尝试在布局中删除这些行,它们在您的情况下没有用
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
关于java - GestureDetector 不适用于新布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42613802/
有没有办法让 GestureDetector 覆盖所有子 GestureDetectors 的功能? 我有一个复杂的小部件,我希望能够轻松地在较高级别覆盖它的所有行为。例如,将免费用户锁定在功能之外。
如果我有一个具有内部 GestureDetector 的 GestureDetector,我该如何设置它以便两个检测器都接收到点击事件? 你可以在这里看到运行代码: https://dartpad.d
如果 GestureDetector.SimpleOnGestureListener 与 GestureDetector.OnGestureListener 执行相同的操作,但不需要未使用的代码,那么
我正在编写简单的代码来检测所有手势,如滑动、滚动等,并打算实现接口(interface) GestureDetector.OnGestureListener用于覆盖它的方法,但我知道同样可以用 Ges
我已经用不同的子 Activity 实现了我的 TabActivity: intent = new Intent().setClass(this, MyChildTabActiviy.class);
我创建了此代码,但我想拥有4x4的翻转卡,您能告诉我该怎么做吗?请 下面的代码是否可以帮助我谢谢你。 我想重复GestureDetector 4 x 4。 在新的flip_card.dart文件中。
我创建了标准手势检测器,它根据给定的手势更改 TextView 。当我的 XML 仅包含我希望更改的相对布局和 TextView 时,一切正常。然而,当我添加网格布局和一些图标时,手势检测器不再工作,
出于某种原因,我的手势检测器无法正常工作。我已经查看了其他多个答案,说要在 down 上实现。我有,但它仍然不起作用。有人可以帮忙吗?这是我无法正常工作的代码。如您所见,我执行了 onDown pub
我正在学习使用 GestureDetector 并遵循 android 的官方开发人员指南,但是当我尝试运行一段代码时遇到了问题.. public class MainActivity extends
我必须在我的程序中使用 GestureDetectors。一个工作精美,另一个则不然。据我所知,它们的实现方式相同。 这是实现不起作用的代码: myExcuseGestureDetector = ne
我正在尝试使用 GestureDetector 使文本小部件可缩放,但它根本不起作用,我什至没有收到任何错误... 请注意,我尝试了很多事情,比如用 GestureDetector 包裹脚手架本身..
当我在 GestureDetector 中有一个 ListView 并且我覆盖了 onVerticalDragUpdate 方法时,ListView 无法滚动. 我如何重写 onVerticalDra
我正在尝试在我的 zoomable_images plugin 中实现双击缩放功能但是GestureTapCallback不提供点击位置信息。 理想情况下,偏移量将由回调返回。有其他 API 吗? 最
我有这个代码 itemizedOverlay = new MyItemizedOverlay(drawable,this); itemizedOverlay.setGestureDetector(ne
我正在使用 GestureDetector 并没有找到任何告诉您拖动方向的 onXYZ 事件。 最佳答案 你试过 onPanUpdate(details) 方法了吗?这是你可以做到的。 Gesture
我有两个容器在一个堆栈中,两个容器都有 GestureDetector。第一个容器的 OnTap 工作正常,但它不适用于另一个容器。第一个容器是图像,第二个容器是部分对齐在第一个容器上方的绿色背景。
我制作了一个简单的测试用例应用程序,您可以在其中使用 GestureDetector 单击一个小部件,该小部件使用 setState 触发对 tapCount 变量的更新。 应用程序在模拟器中运行,文
在我的 build ,我有这个函数,基本上堆叠一个button和一个 counter ,我还传递了一个函数(这让我对所有按钮重用 buildbuttoncolumn,而不是复制周围的代码 我的构建:
当用户在外面轻敲但我无法让它工作时,试图用 GestureDetector 使 TextFormField 失去焦点。 onTap 从不触发。 class EditScreen extends Sta
我正在尝试使 GestureDetector 在堆栈中工作,堆栈顶部有一个容器,但从未调用 onTap 回调。 如您所见,即使使用 HitTestBehavior.translucent 也不起作用
我是一名优秀的程序员,十分优秀!