Kotlin实现按钮点击后显示文本的技术求助
实现按钮点击后显示文本并保持可见
方案一:通过文本颜色控制显示(适配你现有XML结构)
- 修改XML布局,默认隐藏文本
在你的Button标签中添加文本透明属性,让默认文本不可见:
<Button android:background="@drawable/roundstyle" android:backgroundTint="@color/c1" android:id="@+id/btnOne" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="2dp" android:layout_weight="1" android:text="@string/i" android:textColor="@android:color/transparent" <!-- 新增:默认文本透明 --> tools:ignore="UsingOnClickInXml" android:onClick="displayText" />
- 完善MainActivity中的displayText函数
点击时直接将文本颜色改为可见颜色,之后文本会一直保持显示状态:
fun displayText(view: View) { val button = view as Button // 设置为你需要的可见文本颜色,比如黑色或主题配色 button.setTextColor(ContextCompat.getColor(this, android.R.color.black)) }
如果不同按钮需要不同文本颜色,可通过button.id做分支判断。
方案二:通过切换文本内容实现
若不想修改颜色,可初始清空文本,点击后再赋值:
- 修改XML初始文本为空
<Button <!-- 其他属性不变 --> android:text="" <!-- 替换原有的@string/i --> tools:ignore="UsingOnClickInXml" android:onClick="displayText" />
- 在displayText中判断并设置文本
fun displayText(view: View) { val button = view as Button // 仅当文本为空时赋值,避免重复点击重复设置 if (button.text.isBlank()) { when(button.id) { R.id.btnOne -> button.text = getString(R.string.i) // 其他按钮添加对应的case分支 } } }
两种方案都能满足「点击后文本保持可见」的需求,方案一更贴合你已设置文本的XML结构,无需额外判断按钮ID(若所有按钮文本颜色统一)。
内容的提问来源于stack exchange,提问作者User2207
相关产品推荐
相关产品推荐

