当我试图调试我的程序时,我无法弄清楚错误。
我初始化了两个按钮并在它们上使用了.setOnClickListener。 当用户单击按钮时,他们应该看到调试消息 在LogCat上。但是,每当我单击按钮时,或者如果我单击屏幕上的任何位置,我都会看到此消息:ViewPostImeInputStage ACTION_DOWN。
是否有人知道该消息的含义,或者他们是否解决了我的问题?
非常感谢!
答案 0 :(得分:13)
ViewPostImeInputStage ACTION_DOWN是一个错误,它源于罕见的实例,其中您的布局被拒绝,并且您无法再点击任何可点击的项目,而是出现的是ViewPostImeInputStage ACTION_DOWN,每次按下按钮(并且不执行任何操作) 。解决方案很简单,用父级包装您的布局内容。所以如果你的xml格式是
position: absolute
更改为
<LinearLayout <---root layout
...
<!-- your content -->
</LinearLayout> <-- root layout end
此解决方案应解决该冲突。至少这是对我有用的东西。干杯!
答案 1 :(得分:2)
我遇到了与你相同的问题,我尝试了combineiobuilder的方式,但它没有用。 然后我只对代码进行一些更改,然后就可以了。 我只是将我的按钮的每个实例设置为OnlickListener接口,而不是让我的类补充View.OnClickListener~
button.setOnclickListener(new View.OnClickListener){
public void onClick(View v){//...
}
}
INSTEAD OF
public YourClass implements View.OnClickListener{...
public void OnClick(View v){
switch(v.getId()){
case://...
break;}}}
答案 2 :(得分:0)
我遇到了相同的问题,当我使相对布局可点击时(在属性中),这个问题得到了纠正。
欢呼声
答案 3 :(得分:0)
在RecyclerView内第一次点击CardView时,我发生了这种情况。事实证明,CardView XML集:
android:focusable="true"
android:focusableInTouchMode="true"
删除后,第一次点击(以及后续点击)工作正常,我不再遇到ACTION_DOWN错误。
答案 4 :(得分:0)
当我的代码行中有->
时,我收到ViewPostImeInputStage ACTION_DOWN
消息
if(button.getText().equals("word"))
将if语句更正为->
之后,我得到了所需的输出if(button.getText().toString().equals("word"))
希望它可以帮助某人。
答案 5 :(得分:0)
以上所有解决方案均未对我起作用。相当奇怪的错误,想知道是否某些视图正在拦截触摸事件并将其中断,也许是一些appcompat的东西,那边有很多触摸拦截…
无论如何,我解决了在实际损坏的按钮上添加透明的View
并在此视图上添加点击侦听器的问题,这很丑陋,但是有效¯\_(ツ)_/¯
例如想象一下这种布局中发生的错误:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp">
<Button
android:id="@+id/broken_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp"
android:text="Hello world" />
</RelativeLayout>
我添加了透明视图,并单击了它。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp">
<Button
android:id="@+id/broken_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp"
android:text="Hello world" />
<View
android:id="@+id/workaround_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/broken_button"
android:layout_alignTop="@+id/broken_button"
android:layout_alignEnd="@+id/broken_button"
android:layout_alignBottom="@+id/broken_button" />
</RelativeLayout>
同样,这是一个丑陋的解决方案,但仍然是一个解决方案。