【问题标题】:Button click event not firing in second view of a viewflipper按钮单击事件未在取景器的第二个视图中触发
【发布时间】:2010-06-17 20:46:33
【问题描述】:

我在 xml 中有一个布局,当用户单击“下一个”按钮时,我会膨胀,填充下一个屏幕的数据,并为新视图中的图像按钮创建和设置 onclicklistener。然后我将此视图添加到我的主 ViewFlipper 并在其上调用 showNext()。视图滑入到位,按钮在那里,但有问题:

  1. 按钮图像是一个正方形,但它是透明的,因此唯一可见的部分是一个圆圈,除非在显示第二个视图时,您会看到一个灰色方形按钮,顶部有一个圆圈。

  2. click 事件永远不会触发。灰色方块改变颜色以指示点击(不是应该看到的圆形部分,如果它工作正常,颜色会改变),但监听器中的 onClick 事件永远不会执行。

这在我第一次执行此过程时完美运行(膨胀,创建 onClickListener,添加到 ViewFlipper- 虽然我第一次显然没有调用 showNext)。

有人见过这样的吗?快把我逼疯了

【问题讨论】:

  • 没有答案对我有用。 API有问题吗?我有一个包含 50 个视图的布局(包括有错误的按钮)。可能是浏览量过多导致了问题?

标签: android events viewflipper


【解决方案1】:

从 ViewFlipper 或其他设置中删除输入/输出动画:

android:fillAfter="false"
android:fillBefore="false"

在您的输入/输出动画上将解决问题,您将能够使用标准 XML 定义的 onClick 侦听器。

【讨论】:

  • 我也遇到过类似的问题。这个建议对我有帮助。但我不明白发生了什么,这些属性如何影响 onClickListener。谁能给我解释一下?
【解决方案2】:

我刚刚花了四个小时才弄清楚这一点。我认为这只是一种解决方法,但它让我可以点击按钮获得比第一个更远的视图。
在您的 xml 中,使用 --

android:onClick="onClick"

然后在你的代码中,使用下面的格式来监听你的按钮事件..

    public void onClick(View vw) 
     {
        switch (vw.getId()) 
       {
        case R.id.continue_button:
            if(verifyAllTasksCompleted()){
                currentPage++;
                updateView();
            }
            break;

希望这对您有所帮助。 鸢尾花

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 2013-01-17
    相关资源
    最近更新 更多