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



我在线性布局中使用一种样式来创建一个带文本的可点击圆圈,表示一周中的某一天。我把形状做得很好,尽管点击功能不能正常工作。

这是我的线性布局

<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>

我的可提取

<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"/>

它根本没有移动循环压缩状态,我不知道为什么。。有人能帮忙吗?

state_firststate_middlestate_last用于为特定ViewGroups中的第一项、中间项或最后项创建不同的样式。没有太多的文档,所以我不知道它们在哪里使用。

选择器中的每个项目都将按顺序求值,并应用第一个匹配的项目。所以,基本上,你的第一件物品总是匹配的。您的默认状态应该是列表中的最后一项:

<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>

相关内容

  • 没有找到相关文章

最新更新