0

我的应用程序的简要总结:有 2 个按钮和一个文本视图小部件。一旦用户单击“开始”按钮,它将触发一个方法,该方法将“主”按钮移动到屏幕的另一部分。文本视图将跟踪用户单击“主”按钮的次数。

我的问题是,当主按钮移开时,我只能在按下主按钮的初始位置时注册按钮点击

两个按钮的 XML

<Button
        android:id="@+id/start_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/main_button"
        android:layout_alignBottom="@+id/main_button"
        android:layout_toLeftOf="@+id/click_number"
        android:text= "@string/start_button" 
        android:onClick="startClicked"
        />

    <Button
        android:id="@+id/main_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="30dp"
        android:onClick="buttonClicked"
        android:text="@string/button_text" />

方法主要是:

  public void startClicked(View view){
      Button startButton = (Button)findViewById(R.id.start_button);
      startButton.setVisibility(View.GONE);
      move = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.move);
      findViewById(R.id.main_button).startAnimation(move);
        }

    public void buttonClicked(View view){

       TextView textView = (TextView)findViewById(R.id.click_number);
       textView.setText(" "+i);
        }

最后是移动 XML

<translate
        android:duration="800"
        android:fillAfter="true"
        android:fromXDelta="0%p"
        android:startOffset="300"
        android:toXDelta="10%p" />

</set>

如果您需要更多代码,请告诉我。提前致谢。

4

1 回答 1

1

这是意料之中的。原始动画框架为像素设置动画,而不是小部件的触摸区域。

属性动画框架——包括NineOldAndroids backport——移动实际的小部件,包括它的触摸区域。

于 2013-08-31T16:32:33.573 回答