ViewPostImeInputStage ACTION_DOWN

时间:2015-06-21 19:47:33

标签: android button android-fragments

当我试图调试我的程序时,我无法弄清楚错误。

我初始化了两个按钮并在它们上使用了.setOnClickListener。 当用户单击按钮时,他们应该看到调试消息 在LogCat上。但是,每当我单击按钮时,或者如果我单击屏幕上的任何位置,我都会看到此消息:ViewPostImeInputStage ACTION_DOWN。

是否有人知道该消息的含义,或者他们是否解决了我的问题?

非常感谢!

6 个答案:

答案 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>

同样,这是一个丑陋的解决方案,但仍然是一个解决方案。

相关问题