จะลบเงาโดยรอบของ FloatingActionButton ได้อย่างไร

ฉันกำลังพยายามแทนที่ FloatingActionButton บุคคลที่สามด้วย อันเนทิฟ ซึ่งบรรจุอยู่ในไลบรารี com.android.support:design:22.2.0 รูปลักษณ์เริ่มต้นมีเงาดำรอบ ๆ รูปภาพได้อย่างไร ฉันจะกำจัดมัน? ฉันรู้ว่าวิธีแรกมีวิธีการ setShadow()แต่ฉันไม่พบวิธีที่คล้ายกันจากวิธีหลัง

ป้อนคำอธิบายรูปภาพที่นี่

นี่คือโครงร่าง XML ที่เกี่ยวข้อง:

<android.support.design.widget.FloatingActionButton
        android:id="@+id/alarm_front"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/btn_icon_alarm_notset" />

และฉันได้ตั้งค่าสีพื้นหลังเป็นสีเหลืองแล้ว

mAlarmBtn.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(R.color.floatButtonColor)));

person tounaobun    schedule 03.06.2015    source แหล่งที่มา


คำตอบ (7)


แทนที่ระดับความสูงเริ่มต้นของ FAB โดยเพิ่ม:

android:elevation="0dp"

หรือในรหัสโทร View.setElevation(float)

person BrentM    schedule 03.06.2015
comment
setElevation มีให้บริการที่ระดับ API ขั้นต่ำที่ 21 มันจะทำงานต่ำกว่า LOLLIPOP ได้อย่างไร - person tounaobun; 03.06.2015
comment
คุณสามารถยึดติดกับแนวทางเก่าในการสร้าง ImageButton ของคุณเองบนพรีอมยิ้มได้ อย่างที่คุณเคยทำก่อนที่พวกเขาจะแนะนำ FAB - person Zsolt Boldizsár; 03.06.2015
comment
นักพัฒนารายอื่นกำลังรายงานปัญหาเกี่ยวกับเงาบน FAB ที่รองรับใหม่ แม้ว่าโดยทั่วไปแล้วเงาจะไม่แสดงซึ่งเป็นปัญหาตรงกันข้าม แต่อาจเป็นปัญหาที่เกี่ยวข้อง stackoverflow.com/questions/30532863/ - person BrentM; 03.06.2015
comment
จากนั้นฉันจะยึดติดกับบุคคลที่สามจนกว่าจะมีวิธีแก้ปัญหาสำหรับ FAB ของไลบรารีการออกแบบ ขอบคุณ BrentM - person tounaobun; 03.06.2015
comment
ด้วย FAB อย่างเป็นทางการ คุณสามารถใช้ app:elevation="0dp" เพื่อทำสิ่งที่คุณต้องการได้ ฉันลองใช้ Android 4.1.1 แล้วและใช้งานได้ดี ฉันไม่รู้ว่ามีวิธีแก้ปัญหา Java หรือไม่ - person Gaëtan; 01.07.2015
comment
@ Gaëtan คุณควรเปลี่ยนสิ่งนี้เป็นคำตอบ มันช่วยฉันได้จริงๆ ขอบคุณ - person Tosin Onikute; 22.11.2015
comment
ใช้ app:elevation="0dp" เพื่อความเข้ากันได้ - person Leonardo; 16.02.2016

เพิ่มสิ่งนี้

android:elevation="0dp" app:elevation="0dp"

มันจะเป็นเหมือน:

 <android.support.design.widget.FloatingActionButton
        android:id="@+id/floatingActionButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_add"
        android:elevation="0dp"
        app:elevation="0dp"
        app:fabSize="normal"
        android:scaleType="fitCenter"/>
person Jean-Nicolas Defossé    schedule 30.11.2017
comment
นี่คือคำตอบของทุกคน - person GvSharma; 04.11.2018

แทนที่ระดับความสูงเริ่มต้นของ FAB โดยการเพิ่มสิ่งต่อไปนี้:

app:elevation="0dp"
person saurabh dhillon    schedule 10.04.2017

ทำให้เส้นขอบกว้างเป็น 0

app:borderWidth="0dp"
person Sameer Khader    schedule 27.04.2019
comment
ลองทั้งหมดข้างต้นแล้ว แต่เงายังคงอยู่... คำตอบนี้ใช้ได้ผลสำหรับฉัน! - person stefan; 21.12.2019

หากคุณใช้ไลบรารีสนับสนุน - เทมเพลต Android Studio ล่าสุดจะให้เรา ตรวจสอบการนำเข้า

import android.support.design.widget.FloatingActionButton;
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
//if using support app compat
fab.setCompatElevation(16.0f);

อย่างอื่นหากคุณรองรับเฉพาะ sdk เวอร์ชันใหม่กว่าเท่านั้น

fab.setElevation();
//call requires SDK 21

ดู

.../app/build.gradle
  minSdkVersion 18    << less than 21 so req support libraries
  targetSdkVersion 25
person brian.clear    schedule 12.05.2017

ลองทำตามคำแนะนำทั้งหมดข้างต้นแล้ว แต่ก็ไม่มีอะไรทำงานสำหรับ API 23 และสูงกว่า ฉันลงเอยด้วยสิ่งนี้ ซึ่งได้ลบเงาออกไปโดยสิ้นเชิง:

app:backgroundTint="@android:color/transparent"
app:borderWidth="0dp"

ด้านล่างนี้เป็นลักษณะของปุ่มของฉันตอนนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ก่อนการเปลี่ยนแปลงมีลักษณะดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

person Oleg Gryb    schedule 02.02.2018

โซลูชันนี้ใช้ได้กับ ExtendedFloatingActionButton เช่นกัน:

style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
person StefanTo    schedule 02.03.2021