2016-08-17 2 views
1

Я использовал андроид library, чтобы сделать кнопку отправки с приятной анимацией (код ниже), после нажатия кнопки, хотите начать новую активность, но только после завершения анимации, Как мне это сделать?Android: Начать активность после анимации кнопки

Xml код для кнопки "submitButton":

<com.spark.submitbutton.SubmitButton 
     android:layout_width="200dp" 
     android:layout_height="200dp" 
     android:text="Submit" 
     android:textColor="@color/gray" 
     app:sub_btn_background="@color/white" 
     app:sub_btn_duration="3000" 
     app:sub_btn_line_color="#99FF00" 
     app:sub_btn_ripple_color="#99FF00" 
     app:sub_btn_tick_color="@color/white" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true" 
     android:id="@+id/submitButton" /> 

кнопку Submit для Java файлов и действий слушателя:

SubmitButton submitButton = (SubmitButton) findViewById(R.id.submitButton); 
     submitButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       startActivity(new Intent(MainActivity.this,ListViewActivity.class)); 
      } 
    }); 

ответ

3

Если пользовательская кнопка не обеспечивает слушателя своей анимации, нет никакого способа узнать, когда его анимация делается.

В качестве альтернативы, можно использовать продолжительность этой анимации, и начать свою деятельность в postDelayed(runnable, duration)

new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      startActivity(new Intent(MainActivity.this,ListViewActivity.class)); 
     } 
    }, duration); 

Вы также можете заменить new Handler() с v от onClick(View v)

+0

Это прямо в XML sub_btn_duration = "3000". – lionscribe

2

Вместо того, чтобы начать свою деятельность непосредственно, завернуть вызов в работоспособном , и вызов postDelayed с задержкой в ​​3000 мс. Как это

public void onClick(View v) { 
    Runnable r = new Runnable() 
    { 
     public void run() 
     { 
      startActivity(new Intent(MainActivity.this,ListViewActivity.class)); 
     } 
    } 
    v.postDelayed(r, 3000); 
} 
Смежные вопросы