حل مشکل button background در اندروید استودیو ورژن 4.1

پرسیده شده
فعالیت 1197 روز پیش
دیده شده 2607 بار
2

سلام دوستان،

بنده داشتم سعی می کردم داخل ورژن جدید اندروید استودیو ورژن ۴.۱ به button صفت background رو بدم و بعدش custom drawable رو که استاد ساختن رو به عنوان مقدار براش قرار بدم که متاسفانه چیزی تغییر نکرد؛ بعد از کمی جستجو متوجه شدم که اندروید استودیو در ورژن ۴.۱، <com.google.android.material.button.MaterialButton> این تگ رو اضافه کرده که برای متریال دیزان هست و از طرفی تگ button و همین تگ جدید، صفت background رو ساپورت نمیکنه و برای تگ جدید هم باید از backgroundTint برای تغییر رنگ پس زمینه استفاده کنید.

اما اگر بخوایم از custom drawable فایل استفاده کنیم چیکار باید کنیم؟ خوشتبختانه فکری هم به حال اینجا کرده، میتونید بجای استفاده از تگ Button ، از تگ <android.widget.Button>  استفاده کنید اونوقت داخل این تگ از صفت background استفاده کنید و custom drawable ساخته شده رو بدید بهش.

ضمناً دیگه نیازی به ساخت custom drawable نیست چراکه تگ  <com.google.android.material.button.MaterialButton> از صفات 

strokeColor, strokeWidth, cornerRadius پشتیبانی میکنه و درواقع کار رو خیلی راحت تر کرده، مگر اینکه در موارد تخصصی تر لازم داشته باشید که از custom drawable استفاده کنید.

موفق باشید.

فایل پیوست

پارسا مسلم
پارسا مسلم

19 آذر 99

2
حذف شده

سلام و احترام

 

خیلی سپاس گزارم از این نکته اموزشی که قرار دادید

خدمتتون عرض کنم <com.google.android.material.button.MaterialButton> مربوط به لایبرری MaterialDesign هست که قبل از اندروید استودیو 4.1 باید لایبرری مربوطه رو به صورت دستی اضافه میکردیم پیشنهاد من به شما جلو رفتن با اموزش هست چرا که در سرفصل متریال دیزاین با این لایبرری به صورت کامل اشنا خواهید شد .

دلیل اینکه پیشنهاد کردم با اموزش جلو برید این هست اگر هدف شما استخدام باشد و شما وارد شرکتی شوید شاید شرکت مربوطه از متریال دیزاین استفاده نکند و برای شما مشکل ساز شود.

به عنوان مثال ساخت drawable custom خیلی جاهای دیگر علاوه برbackground یک Button کاربرد دارد.

پس با خیال راحت طبق اموزش ها جلو برید چرا که تمامی این موارد در سرفصل های جلویی تدریس شده است.

موفق باشید.

 

 

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

19 آذر 99

حذف شده
درسته اما درحال حاضر اندروید استودیو 4.1 دیگه از background پشتیبانی نمی کنه داخل button ، چیکار باید کرد؟
پارسا مسلم

19 آذر 99

حذف شده
درسته اما درحال حاضر اندروید استودیو 4.1 دیگه از background پشتیبانی نمی کنه داخل button ، چیکار باید کرد؟
پارسا مسلم

19 آذر 99

2
حذف شده

دقت داشته باشید که در اندروید استودیو نسخه 4.1، به صورت پیش فرض تم در قسمت themes، دارای 

parent="Theme.MaterialComponents.DayNight.DarkActionBar" می باشد و برای اینکه بتونید با استاد پیش برید و از مطالب استفاده کنید باید اون رو به parent="Theme.AppCompat.Light.NoActionBar تغییر بدید تا مشکل مذکور برطرف شود.

فایل پیوست

پارسا مسلم

توسط

پارسا مسلم

19 آذر 99

حذف شده
ممنون از راهنمایی تون من هم همین مشکل رو داشتم و حل شد مشکلم
جواد چاجی

16 فروردین 00

2
حذف شده

:طبق اموزش این سرفصل

خدمتتون عرض کنم که در هیچ کدام از ویو های پیشفرض اندروید تغییری ایجاد نشده برای استفاده از background روی Button طبق کد زیر (مثال): 

شما میتوانید به عنوان background به Button تان drawable کاستوم خود را بدهید که من در مثال زیر color مربوط به خود android قرار دادم.

<Button
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:background="@android:color/background_light"/>
فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

19 آذر 99

حذف شده
در اندروید استودیو نسخه 4.1، تم به صورت پیش فرض روی تم material design ست شده است که همین موضوع موجب بوجود آمدن مشکل شده بود، ممنونم از پاسختون.
پارسا مسلم

19 آذر 99

حذف شده
اینطور نیست که اگر تم ما متریال باشد دیگر نمیتوانیم از ویو های پیشفرض اندروید استفاده کنیم (این مورد در سر فصل های بعد خواهید دید).
پوریا شفیعی

19 آذر 99

حذف شده
کاملا مطلب صحیحی رو فرمودید و حق با شماست اما این مشکل برای کاربران دیگر هم بوجود آمده است، خواهشمندم لینک زیر را مشاهده فرمایید: https://stackoverflow.com/questions/64722733/android-background-drawable-not-working-in-button-since-android-studio-4-1
پارسا مسلم

19 آذر 99

1
حذف شده

با سلام و درود خدمت اساتید خودم

من آموزش را تازه شروع کردم و در نسخه 4.1 مشکلی که دارم اینه که وقتی custom drawable را به عنوان background معرفی میکنم هیچ اتفاقی نمی افته (آقای شفیعی : طبق آموزش هم جلو میرم) ، لطفا در مورد رفع این مشکل توضیح بدید ممنونم.

تصویر button را ارسال میکنم تا ببینید.

فایل پیوست

حذف شده
لطفا کد خودتون رو هم قرار بدید که دوستان بتونن کامل راهنماییتون کنن، از تگ <android.widget.Button> استفاده کنید اونوقت داخل این تگ از صفت background استفاده کنید و custom drawable ساخته شده رو بدید بهش.
پارسا مسلم

29 دی 99

حذف شده
شفیعی جون پاسخ را گرفتم : تبدیل them.xml به Them.AppCompat.Light.NoActionBar ولی یه خواهشی دارم اینه که با upDate اندروید استدیو تغییرات را در فایل ضمیمه ارسال کنید . ممنونم
حذف شده
مسلم جون خیلی گلی ولی با تغییر them.xml مشکل حل شد یعنی از حالت متریال خارجش کردم.