【问题标题】:How to create a custom shape of a button but keep it clickable and focusable如何创建按钮的自定义形状但保持可点击和可聚焦
【发布时间】:2017-10-22 17:35:14
【问题描述】:

我想制作一个具有自定义形状的按钮,但是当我尝试更改形状时,它不能点击/聚焦,我该怎么做?

【问题讨论】:

  • 您是否尝试过使用 ImageButton 或自定义可绘制对象

标签: java android xml kotlin


【解决方案1】:

我希望这是您正在寻找的东西,但我已经做了几次,我更喜欢圆形按钮,或者如果它是一个小部件,我想要一个复选框。这是我刚刚通过更改 android:background 所做的几个示例:

 <Button
            android:id="@+id/widget_yes_no_checkbox_off"
            android:layout_width="@dimen/checkbox_size"
            android:layout_height="@dimen/checkbox_size"
            android:layout_marginEnd="@dimen/right_margin"
            android:layout_gravity="center"
            android:background="@android:drawable/checkbox_off_background"
           />

这给了我一个看起来像复选框的按钮(在小部件中制作复选框所必需的)。

或者,这里有一个可绘制的 xml 来帮助我圆一个按钮

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:padding="10dp">
    <solid android:color="@color/primaryDarkColor"/>
    <corners android:radius="20dp"/>
</shape>

与其对应的风格主题:

 <style name="myAppStyle.ButtonStyle">
        <item name="android:background">@drawable/rounded_button</item>
    </style>

因此,总而言之,我认为最简单的方法是仍然进行按钮布局,但使用背景属性来更改按钮的外观。

【讨论】:

  • 你的按钮背景好运吗?
【解决方案2】:

你可以通过两种方式做到这一点,

  1. 设置任何可绘制形状的布局/按钮,并在 XML 中添加 android:foreground="?attr/selectableItemBackground"

  2. 在按钮中设置样式属性。 style="@style/buttonTheme" 在其 XML 中并定义 <style name="buttonTheme" parent="Widget.AppCompat.Button.Colored"> <item name="colorButtonNormal">@color/#000000</item> 在 /style 文件夹中。

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 2017-06-17
    • 2015-04-14
    • 2013-08-22
    • 2020-09-27
    • 2019-04-09
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    相关资源
    最近更新 更多