Tôi muốn loại bỏ bóng từ nút để làm cho nó có vẻ phẳng hơn.
Tôi có cái này ngay bây giờ:
Nhưng tôi muốn điều này:
Tôi muốn loại bỏ bóng từ nút để làm cho nó có vẻ phẳng hơn.
Tôi có cái này ngay bây giờ:
Nhưng tôi muốn điều này:
Câu trả lời:
Một cách khác là thêm
style="?android:attr/borderlessButtonStyle"
vào Nút xml của bạn như được ghi lại ở đây http://developer.android.com/guide/topics/ui/controls/button.html
Một ví dụ sẽ là
<Button
android:id="@+id/button_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage"
style="?android:attr/borderlessButtonStyle" />
Một cách đơn giản hơn để làm là thêm thẻ này vào nút của bạn:
android:stateListAnimator="@null"
mặc dù nó yêu cầu API cấp 21 trở lên ..
android:stateListAnimator
thuộc tính không?
borderlessButtonStyle
kiểu, giúp bạn linh hoạt hơn.
thử : android:stateListAnimator="@null"
Nút desing vật liệu thêm vào nút xml:
style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
Sử dụng điều này làm nền cho nút của bạn có thể giúp ích, thay đổi màu sắc theo nhu cầu của bạn
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape android:shape="rectangle">
<solid android:color="@color/app_theme_light" />
<padding
android:left="8dp"
android:top="4dp"
android:right="8dp"
android:bottom="4dp" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="@color/app_theme_dark" />
<padding
android:left="8dp"
android:top="4dp"
android:right="8dp"
android:bottom="4dp" />
</shape>
</item>
</selector>
câu trả lời @ Alt-Cat làm việc cho tôi!
R.attr.borderlessButtonStyle không chứa bóng.
và tài liệu của nút là tuyệt vời.
Ngoài ra, bạn có thể đặt kiểu này trên nút tùy chỉnh của mình, trong hàm tạo thứ hai.
public CustomButton(Context context, AttributeSet attrs) {
this(context, attrs, R.attr.borderlessButtonStyle);
}
Tất cả các câu trả lời trên là tuyệt vời, nhưng tôi sẽ đề xuất một tùy chọn khác:
<style name="FlatButtonStyle" parent="Base.Widget.AppCompat.Button">
<item name="android:stateListAnimator">@null</item>
<!-- more style custom here -->
</style>
Thay vì Nút, bạn có thể sử dụng TextView và thêm trình nghe nhấp chuột trong mã java.
I E
trong bố cục hoạt động xml:
<TextView
android:id="@+id/btn_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimaryDark"
android:text="@string/btn_text"
android:gravity="center"
android:textColor="@color/colorAccent"
android:fontFamily="sans-serif-medium"
android:textAllCaps="true" />
trong tệp java hoạt động:
TextView btnTextView = (TextView) findViewById(R.id.btn_text_view);
btnTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// handler code
}
});