线性布局中的可点击圆圈和文字?

时间:2015-07-03 15:52:28

标签: android styles shape linear clickable

我使用线性布局中的样式来创建带有文本的可点击圆圈 - 表示一周中的某一天。虽然点击功能无法正常工作,但我的形状很好。

这是我的线性布局

<LinearLayout
        android:layout_height="40dp"
        android:layout_width="40dp"
        android:layout_weight="1"
        android:gravity="center"
        android:clickable="true"
        android:focusable="true"
        style="@style/circleButton_style"

        android:saveEnabled="true"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#FFFFFF"
            android:textSize="10sp"
            android:textStyle="bold"
            android:singleLine="true"
            android:text="S"/>

    </LinearLayout>

我的风格

<style name="circleButton_style" parent="AppTheme">
    <item name="android:background">@drawable/circle_stand_sel</item>
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:minHeight">48dp</item>
    <item name="android:paddingLeft">5dp</item>
    <item name="android:paddingRight">5dp</item>
</style>

我的 drawable

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<!-- initial state state -->
<item android:drawable="@drawable/circle" android:state_first="false" />

<!-- disabled state -->
<item android:drawable="@drawable/circle" android:state_enabled="false"/>

<!-- enabled and pressed state -->
<item android:drawable="@drawable/circle_pressed" android:state_enabled="true" android:state_pressed="true"/>

<!-- enabled and focused state -->
<item android:drawable="@drawable/circle_pressed" android:state_enabled="true" android:state_focused="true"/>

<!-- enabled state -->
<item android:drawable="@drawable/circle_pressed" android:state_enabled="true"/>

根本没有移动circle_pressed状态,我也不知道为什么有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

state_firststate_middlestate_last用于为特定ViewGroup中的第一个,中间个或最后一个项目创建不同的样式。没有太多的文档,所以我不知道它们的用途。

依次评估选择器中的每个项目,并应用匹配的第一个项目。所以,基本上,你的第一个项目总是匹配的。您的默认状态应该是列表中的最后一项:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/circle_pressed"
          android:state_pressed="true"/>
    <item android:drawable="@drawable/circle_pressed"
          android:state_focused="true"/>
    <item android:drawable="@drawable/circle"/>
</selector>