我有一個FrameLayout裏一個DelayedConfirmationView:延遲確認按鈕動畫
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.wearable.view.DelayedConfirmationView
android:id="@+id/delayed_confirmation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/save_button"
app:circle_color="@color/blue"
app:circle_radius="45dp"
app:circle_radius_pressed="40dp"
app:circle_padding="5dp"
app:circle_border_width="10dp"
app:circle_border_color="@color/white"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Save"
android:id="@+id/textView"
android:layout_gravity="center"
android:textColor="#ffffff"
android:layout_marginTop="50dp" />
</FrameLayout>
此佈局的目的是通過一個片段顯示:
public class SaveRunFragment extends Fragment implements DelayedConfirmationView.DelayedConfirmationListener {
Run1Fragment run1;
private DelayedConfirmationView mDelayedView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.layout_saverun, container, false);
mDelayedView =
(DelayedConfirmationView) view.findViewById(R.id.delayed_confirmation);
mDelayedView.setTotalTimeMs(4 * 1000);
mDelayedView.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
System.out.println("START");
mDelayedView.start();
mDelayedView.setListener(SaveRunFragment.this);
return;
}
});
return view;
}
@Override
public void onDetach() {
super.onDetach();
}
@Override
public void onTimerFinished(View view) {
System.out.println("END");
}
@Override
public void onTimerSelected(View view) {
System.out.println("cancel");
}
}
我想要實現像按鈕動畫在延遲確認開發者指南上:https://developer.android.com/training/wearables/ui/confirm.html 但是當我點擊按鈕時,onclick()不會觸發該操作。
我測試過它使不同的按鈕來觸發動作,但這一切發生的是,打印顯示但不顯示按鈕周圍的小裕...
有人能告訴我是什麼我做錯了嗎?
編輯
所以我改變了我的片段是:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.layout_saverun, container, false);
System.out.println("before");
mDelayedView =
(DelayedConfirmationView) view.findViewById(R.id.delayed_confirmation);
mDelayedView.setTotalTimeMs(4000);
mDelayedView.setListener(this);
System.out.println("after");
return view;
}
@Override
public void onDetach() {
super.onDetach();
}
@Override
public void onTimerFinished(View view) {
//delayed confirmation
System.out.println("END");
}
@Override
public void onTimerSelected(View v) {
System.out.println("SELECTED");
if (animation == false) {
mDelayedView.start();
mDelayedView.setListener(this);
animation = true;
System.out.println("Start");
} else {
((DelayedConfirmationView) v).setListener(null);
animation = false;
System.out.println("Cancel");
}
}
的打印顯示爲預期,但周圍有圓形按鈕沒有動畫...
編輯
問題是我的源圖像是t o大,它覆蓋了動畫,這就是爲什麼它沒有出現。
感謝您的澄清!問題是,在用你的信息重做我的代碼之後,動畫仍然不顯示......我希望delayedConfirmationView在點擊時顯示圓形按鈕周圍的動畫,但它只顯示打印並且不顯示動畫... – cdlc
顯示你的完整的修改代碼;你可能仍然失蹤;我根據你的佈局構建了一個示例,它工作得很好。 –
我已經用答案更新了我的問題。顯然,這是我的一個愚蠢的錯誤...感謝您的幫助! – cdlc