gpt4 book ai didi

android - 单击的动画在使用 设计后消失了

转载 作者:行者123 更新时间:2023-11-30 02:08:25 24 4
gpt4 key购买 nike

在使用 ListView 向用户显示一些数据时,默认情况下,当用户单击 ListView 项目时,它们具有“已单击”动画 [如图所示] enter image description here

现在,我想设计 ListView 中的项目并添加 android:background="@drawable/border"到他们的 XML 布局定义

当 drawable/border.xml 被定义为:

<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android">

<stroke android:width="1.5dp" android:color="#000000" />
<solid android:color="#ffe5d226"/>
<padding
android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="0dp" />
<corners android:radius="4dp"/>
</shape>

执行此操作后,ListView 项目更改为我想要的形状和颜色,但是“单击”动画消失了 [我正在单击下图中的“星期三”] enter image description here

我已经尝试解决这个问题很长时间了,但没有成功:\如何在保持项目设计的同时检索“点击”动画?

最佳答案

我的问题的解决方案是在@drawable 文件夹中创建:

1) 名为 not_clicked_layout.xml 的 ListView 项的“未单击”背景布局喜欢:

<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android">

<stroke android:width="1.5dp" android:color="#000000" />
<solid android:color="@color/green"/>
<padding
android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="0dp" />

<corners android:radius="4dp"/>
</shape>

2) ListView 项目的“点击”背景布局,即用户按下它时的样子。命名为 clicked_layout.xml喜欢:

<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/gold"/>
<stroke android:width="1.5dp" android:color="#000000" />

<padding
android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="0dp" />
<corners android:radius="4dp"/>
</shape>

3) 最后也是最重要的布局是通过创建名为 list_selector.xml 的最后一个布局来坚持前两个步骤的布局:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="false"
android:drawable="@drawable/not_clicked_layout" />

<item android:state_pressed="true"
android:drawable="@drawable/clicked_layout" />

</selector>

上面的布局声明了“not_clicked_layout.xml”在项目未被按下时显示,“clicked_layout”在项目被按下时显示。

4) 剩下要做的就是添加:

android:background="@drawable/list_selector"

你的 ListView 项目的布局和“点击”动画将从死里复活:)

注意:此解决方案不仅与 ListView 项目相关,而且与您想要创建“推送”动画的任何 GUI 元素相关。

关于android - 单击的动画在使用 <shape> 设计后消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30433208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com