سلام
استاد چرا هنگام ساختن instance از float action button از کلاس View استفاده کردید؟
در قسمت متریال دیزاین اینو توضیح نداده بودید
سلام وقت بخیر امیر عزیز
کدتون مشکلی نداره اما مشکلی که هست شما بجای اینکه در layout تون بیایید و از FloatingActionButton استفاده کنید دارید از ExtendedFloatingActionButton استفاده میکنید و حال به شما خطا میده که من نمیتونم ExtendedFloatingActionButton رو به FloatingActionButton کست کنم به این خطار که شما در کدتون از FloatingActionButton استفاده کردید
FloatingActionButton btn_animation=findViewById(R.id.btn_actionbtn_main);
پس
شما دو تا کار میتونید کنید یا اینکه در لیوتتون برید و ExtendedFloatingActionButton رو به FloatingActionButton تغییر بدید و از این ویو استفاده کنید
یا در کد های جاوا که ارسال کردید از ExtendedFloatingActionButton استفاده کنید یعنی:
ExtendedFloatingActionButton btn_animation=findViewById(R.id.btn_actionbtn_main);
خلاصه اینکه باتن شما در لیوت با ای دی btn_actionbtn_main از نوع ExtendedFloatingActionButton هست نه از نوع FloatingActionButton
سلام وقت بخیر
از float action button یک نمونه یا instance ساخته نمیشه بلکه این instance وجود داره فقط findviewbyid میشه تمام عناصر رابط کاربری در نهایت کلاس View رو به ارث میبرن که این کلاس شامل یکسری property ها و method هایی میشه شما اینجا فقط میخواین وقتی روی float action button کلیک شد یک عملی رو انجام بدین و کار دیگه ای نمیخواین انجام بدین بنابراین instance این float action button رو میتونید داخل متغیری از نوع FloatActionButton یا View بریزین و هیچ تفاوتی نداره چون متد setOnClickListener در حقیقت داخل کلاس View وجود داره و کلاس FloatActionButtton این متد رو ازش به ارث برده. اگه از یک متدی استفاده کنید که داخل کلاس View نیست و مخصوص کلاس FloatActionButton هست اونوقت باید از متغیر از نوع FloatActionButton استفاده کنید نه View
ImageView image_animation=findViewById(R.id.image_animation_main);
FloatingActionButton btn_animation=findViewById(R.id.btn_actionbtn_main);
AlphaAnimation alphaAnimation=new AlphaAnimation(1,0);
alphaAnimation.setDuration(3000);
alphaAnimation.setRepeatCount(Animation.INFINITE);
alphaAnimation.setRepeatMode(Animation.REVERSE);
alphaAnimation.setFillAfter(true);
btn_animation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
image_animation.startAnimation(alphaAnimation);
}
});