2017-03-12 2 views
0

나는 다음과 같은 레이아웃 파일 activity_register에 떠있는 액션 버튼이 있습니다Click 이벤트

<?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:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity"> 

    <FrameLayout 
     android:paddingTop="70dp" 
     android:layout_width="320dp" 
     android:layout_height="400dp" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true"> 

     <android.support.v7.widget.CardView 
      android:id="@+id/cv_RegisterAdd" 
      app:cardBackgroundColor="#009688" 
      android:layout_marginTop="10dp" 
      android:layout_gravity="center_horizontal" 
      android:layout_width="match_parent" 
      android:layout_height="320dp" 
      app:cardCornerRadius="6dp" 
      app:cardElevation="3dp" 
      app:cardUseCompatPadding="true" 
      > 
      <LinearLayout 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

       <TextView 
        android:layout_marginTop="50dp" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginStart="50dp" 
        android:text="REGISTER" 
        android:textColor="#FFFFFF" 
        android:textAppearance="?android:attr/textAppearanceMedium" 
        android:textStyle="bold" 
        /> 
       <LinearLayout 
        android:layout_marginTop="10dp" 
        android:paddingStart="50dp" 
        android:paddingEnd="30dp" 
        android:layout_width="match_parent" 
        android:layout_height="40dp"> 
        <android.support.design.widget.TextInputLayout 
         android:textColorHint="#f0f7f4" 
         android:layout_width="match_parent" 
         android:theme="@style/TextLabel" 
         android:layout_height="wrap_content"> 
         <EditText 
          android:textAppearance="?android:attr/textAppearanceMedium" 
          android:hint="Username" 
          android:textColor="#f0f7f4" 
          android:id="@+id/txtCurUsername" 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:inputType="textPersonName" 
          android:background="@drawable/selector_bg_edit_2" 
          android:textCursorDrawable="@drawable/bg_input_cursor_2" 
          android:paddingBottom="2dp" 
          /> 
        </android.support.design.widget.TextInputLayout> 
       </LinearLayout> 
       <LinearLayout 
        android:paddingStart="50dp" 
        android:paddingEnd="30dp" 
        android:orientation="horizontal" 
        android:layout_width="match_parent" 
        android:layout_height="40dp"> 
        <android.support.design.widget.TextInputLayout 

         android:textColorHint="#FFFFFF" 
         android:theme="@style/TextLabel" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content"> 
         <EditText 
          android:textAppearance="?android:attr/textAppearanceMedium" 
          android:hint="Password" 
          android:textColor="#f0f7f4" 
          android:id="@+id/txtNewPassword" 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:inputType="textPassword" 
          android:background="@drawable/selector_bg_edit_2" 
          android:textCursorDrawable="@drawable/bg_input_cursor_2" 
          android:paddingBottom="2dp" 
          /> 
        </android.support.design.widget.TextInputLayout> 
       </LinearLayout> 
       <LinearLayout 
        android:paddingStart="50dp" 
        android:paddingEnd="30dp" 
        android:orientation="horizontal" 
        android:layout_width="match_parent" 
        android:layout_height="40dp"> 
        <android.support.design.widget.TextInputLayout 

         android:textColorHint="#f0f7f4" 
         android:theme="@style/TextLabel" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content"> 
         <EditText 
          android:textAppearance="?android:attr/textAppearanceMedium" 
          android:textColor="#f0f7f4" 
          android:hint="Repeat Password" 
          android:id="@+id/txtRepeatPassword" 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:inputType="textPassword" 
          android:background="@drawable/selector_bg_edit_2" 
          android:textCursorDrawable="@drawable/bg_input_cursor_2" 
          android:paddingBottom="2dp" 
          /> 
        </android.support.design.widget.TextInputLayout> 
       </LinearLayout> 
       <Button 
        android:layout_marginTop="20dp" 
        android:layout_gravity="center_horizontal" 
        android:stateListAnimator="@drawable/state_list_animator_z" 
        android:id="@+id/btn_Register" 
        android:text="REGISTER" 
        android:textColor="#009688" 
        android:textAppearance="?android:attr/textAppearanceMedium" 
        android:layout_width="200dp" 
        android:layout_height="40dp" 
        android:background="@drawable/register_btnshape" 
        > 
       </Button> 

      </LinearLayout> 
     </android.support.v7.widget.CardView> 
     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fb_Cancel" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      app:fabSize="normal" 
      android:src="@drawable/plus_x" 
      android:transitionName="loginFab" 
      android:layout_gravity="center_horizontal|top" /> 

    </FrameLayout> 
</RelativeLayout> 

내가 떠있는 동작 버튼에 클릭 이벤트를 설정 한 활동에 있습니다. 디버깅 중이며 이벤트가 실행되고 클릭 이벤트가 발생하지 않는지 확인했습니다. RegisterActivity 코드는 다음과 같다 :에서

public class RegisterActivity extends AppCompatActivity 
{ 

    @BindView(R.id.fb_Cancel) 
    FloatingActionButton mClose_fb; 
    @BindView(R.id.btn_Register) 
    Button mRegister_btn; 
    @BindView(R.id.cv_RegisterAdd) 
    CardView mRegister_cv; 
    @Override 
    public void onCreate(@Nullable Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_register); 
     ButterKnife.bind(this); 
     getSupportActionBar().hide(); 

     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
     { 
      showEnterAnimation(); 
     } 
     mClose_fb.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) 
      { 
       animationRevealClose(); 
      } 
     }); 
    } 


    public void showEnterAnimation() 
    { 
     Transition transition = TransitionInflater.from(this).inflateTransition(R.transition.fabtransition); 
     getWindow().setSharedElementEnterTransition(transition); 

     transition.addListener(new Transition.TransitionListener() { 
      @Override 
      public void onTransitionStart(Transition transition) { 
       mRegister_cv.setVisibility(View.GONE); 
      } 

      @Override 
      public void onTransitionEnd(Transition transition) { 
       transition.removeListener(this); 
       animateRevealShow(); 
      } 

      @Override 
      public void onTransitionCancel(Transition transition) { 

      } 

      @Override 
      public void onTransitionPause(Transition transition) { 

      } 

      @Override 
      public void onTransitionResume(Transition transition) { 

      } 
     }); 
    } 

    public void animationRevealClose() 
    { 
     Animator mAnimator = ViewAnimationUtils.createCircularReveal(mRegister_cv,mRegister_cv.getWidth()/2,0, mRegister_cv.getHeight(), mClose_fb.getWidth()/2); 
     mAnimator.setDuration(500); 
     mAnimator.setInterpolator(new AccelerateInterpolator()); 
     mAnimator.addListener(new AnimatorListenerAdapter() 
     { 
      @Override 
      public void onAnimationEnd(Animator animation) 
      { 
       mRegister_cv.setVisibility(View.INVISIBLE); 
       super.onAnimationEnd(animation); 
       mClose_fb.setImageResource(R.drawable.plus); 
       RegisterActivity.super.onBackPressed(); 
      } 

      @Override 
      public void onAnimationStart(Animator animation) { 
       super.onAnimationStart(animation); 
      } 
     }); 
    } 

    public void animateRevealShow() 
    { 
     Animator mAnimator = ViewAnimationUtils.createCircularReveal(mRegister_cv, mRegister_cv.getWidth()/2,0, mClose_fb.getWidth()/2, mRegister_cv.getHeight()); 
     mAnimator.setDuration(500); 
     mAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); 
     mAnimator.addListener(new AnimatorListenerAdapter() 
     { 
      @Override 
      public void onAnimationEnd(Animator animation) 
      { 
       super.onAnimationEnd(animation); 
      } 

      @Override 
      public void onAnimationStart(Animator animation) 
      { 
       mRegister_cv.setVisibility(View.VISIBLE); 
       super.onAnimationStart(animation); 
      } 
     }); 
     mAnimator.start(); 
    } 

    @Override 
    public void onBackPressed() { 
     animationRevealClose(); 
    } 
+1

나는 당신은 당신의 XML 파일 체크 [이] (http://stackoverflow.com/questions/35887651/floating-action-butt을 확인한다고 생각 애니메이션을 시작합니다 수행에-아닌 - 응답 - -가 - - 클릭 만졌을 때) 당신을 도움이 될 수 있습니다. 이 클릭에 응답하거나 @zkminusck 대답은 –

+0

간단하게 토스트를 추가하고 확인 버튼 –

+0

다음하지 않을 경우이 그가 butterknife (@BindView (R.id.fb_Cancel가))을을 얻기 위해 사용되기 때문에 아무 것도 변경하지 마십시오 경우 –

답변

0

당신에서 onCreate이 작업을 수행 :

mClose_fb = (FloatingActionButton)findViewById(R.id.fb_Cancel); 
mClose_fb.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) 
      { 
       animationRevealClose(); 
      } 
     }); 
+0

를 작동하지 – stamanuel

+0

예 내가 Butterknife을 사용하고 어떤 차이를하지 않습니다 – Msc

0

나는 다음과 같은 방법으로 mAnimator.start()를 탈락했기 때문이었다 일어나고 어떤 애니메이션이 없었다 이유

public void animationRevealClose() 
    { 
     Animator mAnimator = ViewAnimationUtils.createCircularReveal(mRegister_cv,mRegister_cv.getWidth()/2,0, mRegister_cv.getHeight(), mClose_fb.getWidth()/2); 
     mAnimator.setDuration(500); 
     mAnimator.setInterpolator(new AccelerateInterpolator()); 
     mAnimator.addListener(new AnimatorListenerAdapter() 
     { 
      @Override 
      public void onAnimationEnd(Animator animation) 
      { 
       mRegister_cv.setVisibility(View.INVISIBLE); 
       super.onAnimationEnd(animation); 
       mClose_fb.setImageResource(R.drawable.plus); 
       RegisterActivity.super.onBackPressed(); 
      } 

      @Override 
      public void onAnimationStart(Animator animation) { 
       super.onAnimationStart(animation); 
      } 
     }); 
    mAnimator.start(); 
    }