Android无边框按钮

时间:2012-03-14 02:26:13

标签: android view styles

我不想成为第三个问这个问题的人,但之前的two askings似乎没有完全回答。 android设计指南详细介绍borderless buttons,但不详细说明如何制作它们。在之前的一个答案中,有一个消息使用:

style="@android:style/Widget.Holo.Button.Borderless"

这适用于Holo主题,但我也使用了很多Holo.Light和

style="@android:style/Widget.Holo.Light.Button.Borderless"

似乎不存在。有没有办法在Holo.Light中为这种无边框按钮应用样式,或者更好的是,只需应用无边框标签而不指定它所属的主题,那么应用程序可以在运行时选择合适的样式吗?

Holo.ButtonBar似乎符合我要求的费用,除非它没有提供用户反馈,因为它被按下了。

此外,文档中是否有一个位置列出了可以应用的样式及其描述?无论我谷歌多少,搜索文档,我都找不到任何东西。如果我右键单击并编辑样式,则只有一个非描述性列表。

任何帮助都将不胜感激。

编辑:得到了javram的完美答案,我想为有兴趣添加谷歌采用的部分边界的人添加一些XML。

Fora水平分隔线,这很棒

<View
    android:id="@+id/horizontal_divider_login"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:background="@color/holo_blue" />

这是垂直的:

<View
     android:id="@+id/vertical_divider"
     android:layout_width="1dip"
     android:layout_height="match_parent"
     android:layout_marginBottom="8dp"
     android:layout_marginTop="8dp"
     android:background="@color/holo_blue" />

5 个答案:

答案 0 :(得分:42)

只需在Button代码中添加以下样式属性:

style="?android:attr/borderlessButtonStyle"

来源:http://developer.android.com/guide/topics/ui/controls/button.html#Borderless

答案 1 :(得分:27)

查看我的回答here。简而言之,正确的解决方案是使用以下内容:

android:background="?android:attr/selectableItemBackground"

答案 2 :(得分:10)

冒着击败死马的风险,这是另一种(可能更好)的选择。 AppCompat v7定义了无边框按钮样式。如果您已经在使用AppCompat库,那就去吧:

<Button android:text="@string/borderlessButtonText" style="@style/Widget.AppCompat.Button.Borderless" />

答案 3 :(得分:8)

此代码将删除按钮的所有背景:

android:background="@android:color/transparent"

答案 4 :(得分:1)

只是因为任何人都在寻找轻量级的解决方案来获得不支持Holo主题的API的无边界按钮(就像我做了很长时间),我在下面发布我的解决方案:

<View 
    android:layout_height="1dp"
    android:layout_width="match_parent"
    android:background="#505154"
    android:layout_marginLeft="10dp" android:layout_marginRight="10dp"/>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/btn_Reply"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:background="@android:color/transparent"
        android:paddingBottom="15dp" android:paddingTop="15dp"
        android:textColor="#5c5966"
        android:text="@string/btnReplyText"/>

    <View 
        android:layout_height="fill_parent"
        android:layout_width="1dp"
        android:background="#505154" 
        android:layout_marginBottom="7dp" android:layout_marginTop="7dp"/>

    <Button
        android:id="@+id/btn_Delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:paddingBottom="15dp" android:paddingTop="15dp"
        android:textColor="#5c5966"
        android:background="@android:color/transparent"
        android:text="@string/btnDeleteText" />

    <View 
        android:layout_height="fill_parent"
        android:layout_width="1dp"
        android:background="#505154"
        android:text="@string/btnReplyText"
        android:layout_marginBottom="7dp" android:layout_marginTop="7dp" />

    <Button
        android:id="@+id/btn_Exit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_gravity="center"
        android:text="@string/btnExitText"
        android:paddingBottom="15dp" android:paddingTop="15dp"
        android:textColor="#5c5966"
        android:background="@android:color/transparent"/>
</LinearLayout>

您所要做的就是更改颜色和文字以适合您自己的背景。一切顺利!