首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EditText在RecyclerView中的解决方案

有时候,一个列表中的Item会有EditText的出现,而由于View复用机制,如果不好好处理EditText,将会出现一些问题。...菜是原罪 EditText在RecyclerView中的问题 例子是这样的,每个Item包含一个title、一张图片以及一个评分,这个评分就是通过输入框来输入的。...原来是因为这里是addTextWatcher,而不是setTextWatcher,也就是在复用的时候,同一个EditText添加了多个TextWatcher,怪不得分数9还能出现在上面了。...首先我是试了一个,removeTextWatcher的方法,那就是在Adapter的detachViewHolderFromWindow方法中移除TextWatcher,如下: class PicAdapter...很简单,在updateView(),也就是bind过程中每次去更新PicItem就可以了。

2.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在 Android Instant App(安卓即时应用程序)中启用 ProGuard (混淆)

    现在我们明白了为什么 ProGuard(混淆)会失败了,是时候解决这个问题了:确保我们为项目配置添加必要的保留规则,以防止在不同模块(在一个模块中定义,在另一个中使用)之间的类被移除或混淆。...在你构建你的可安装程序中启用 ProGuard(混淆)并修复所有的运行时异常 这是最困难的部分,也是唯一不容易复现的部分,因为每个项目所需的 ProGuard(混淆)配置规则会有所不同。...为你所有的即时应用功能启用 ProGuard(混淆) 在可安装的应用程序版本构建过程中,ProGuard(混淆)只运行一次:在使用 com.android.application 插件的模块中。...窍门是使用 Android SDK 中提供的工具来近乎自动化的执行这个操作。 首先,准备好一个调试版本(或者没有启用 ProGuard(混淆)的调试版本)。...要解决这个问题,首先要启用 ProGuard(混淆)来开发即时应用程序(例如使用刚刚在前面步骤中设置的构建方式)。

    2.6K30

    解决android中EditText设置末尾省略号不生效的情况

    在Textiew中可以通过设置TextView的属性 android:maxEms 和 android:ellipseize 来使过多的文字显示为省略号,但在在EditText中设置只这两个属性则不行,...android默认只有在文字不可编辑的状态下才可以显示这些效果,但是EditText重写了这个属性,使得文字默认都是可以编辑的。...所以若想要呈现TextView的效果,必须加上以下属性 android:editable= "false" 另外EditText不支持跑马等的效果.咱们来看看android源码 override public...这里呢, 建议大家自定义EditText并重写onTouchEvent方法,从外部进行控制是否获取焦点, 如下: class FocusEditText(context: Context, attrs:...AttributeSet) : EditText(context, attrs){ override fun onTouchEvent(event: MotionEvent?)

    2.8K20

    在Spring AOP切面中启用新事务

    在工作中有一个在切面中需要记录一下操作日志的需求,而且要求这些操作日志要存入数据库,并且无论业务层有什么异常,日志照常记录,那就不能沿用业务层的事务,而是需要新启一个事务了。...sping的声明式事务就是靠AOP来实现的,一般事务都在业务层中启用,那如果要在AOP的逻辑中启用一个新的事务要怎么做呢?...,需要启用新的事务 ... } 经过我的测试,通过在doAfterReturning方法上加上注解@Transactional,并指定传播行为是REQUIRES_NEW依然不行。..."remote()") public void doAfterReturning(JoinPoint joinPoint,Object ret) throws Throwable { //声明式事务在切面中不起作用...,执行完就会提交,和业务层中的原事务无关,即便执行完切面逻辑后继续执行业务代码的过程中出现异常,业务层中的数据库操作因为有原事务而回滚,但切面中的数据库操作不会回滚,因为这是个新的事务!

    72910

    在 Docker Desktop 中启用 K8s 服务

    集群就劝退了很多的人,因此这里最简单的方式就是直接使用 Windows or Mac 上的 Docker Desktop 内置的 K8s 来学习 然而,由于某些网络原因,如果你直接在 Dokcer 中启用这个功能的话...最新版的软件在安装时也是会默认使用 WSL 作为宿主的,这里我使用的是 3.3.1 版本的 Docker,内置的 k8s 版本为 v1.19.7 PS:安装 Docker 之前需要你在 BIOS 中开启虚拟化...,同时基于你的宿主程序的选择,你还需要执行如下的操作 使用 WSL2 作为宿主:在“控制面板\所有控制面板项\程序和功能”中选择“启用或者关闭 Windows 功能” 勾选上适用于 Linux 的 Windows...子系统,然后在 Microsoft 商城中下载一个 Linux 的发行版本 使用 Hyper-V 作为宿主:在“控制面板\所有控制面板项\程序和功能”中选择“启用或者关闭 Windows 功能” 勾选上...等待命令的执行完成,可以看到我们本地的 Docker 中已经包含了 images.properties 文件中列到的镜像 ?

    4.1K21

    Android开发笔记(三十六)展示类控件

    如果填充图片显然不够经济,最简单的做法,就是在xml布局中增加一个View控件,高度或宽度设置为1dp,背景颜色设置为线条颜色,这样便实现了单独显示线条的需求。...scrollbars : 指定滚动条的方向,一般取值vertical,如不指定将不显示滚动条。注意该属性只能在xml中设置。...EditText EditText是文本输入框,与输入有关的属性说明如下: 在XML布局文件中指定: inputType : 指定输入的文本类型。...在代码中设置: setInputType : 设置输入的文本类型。...该功能有两种实现方式: 方式一:在布局文件的EditText节点中加入singleLine属性,但该方式只在视觉上起作用,真正的字符串还是带有回车换行符; android:singleLine="true

    1.5K30

    1119Android开发笔记—EditTex多行输入及相关问题

    1、android里面EditTex多行输入及输入置顶问题         EditText           android:id="@+id/releasetContentE"          ...显示滚动条:  android:scrollbars="vertical" 输入标识符置顶: 默认输入标识符居中,若想不置顶使用如下代码    android:gravity="top" minLines...和maxLines的区别          android:minLines="3"          android:maxLines="3" 使用maxLines的EditText最大行数为3行,当输入的内容超过...3行后,它形状的大小不会根据输入内容的多少而改变,反正它显示的内容就是3行 而使用minLines的EditText是至它至少显示3行内容,当输入的内容超过3行后,它形状的大小根据输入内容的多少而改变。..."date"//日期键盘     android:inputType="time"//时间键盘  3、参考资料 android里面EditTex多行输入及输入置顶问题 android中minLines

    86410
    领券