同一个TextView中的多个id

Posted

技术标签:

【中文标题】同一个TextView中的多个id【英文标题】:Multiple ids in the same TextView 【发布时间】:2021-01-27 19:53:02 【问题描述】:

是否可以在同一个TextView中以某种方式设置多个id值?

我有一个包含多个可点击链接的长字符串,我想为这些链接分配 ID,以便我可以在代码中获取它们,这可以实现吗?

我尝试将单独的 TextView 元素放在水平 LinearLayout 中,但如果太长,则无法将其换行。

是否有一些自定义元素/方式来实现此行为?

【问题讨论】:

我认为你需要 RecycleView 的东西 @FrancescoBocci 嗯,我看不出这与 LinearLayout 实现有何不同,因为我不需要滚动 为什么不直接将文本从代码本身设置为 TextView 呢?你可以使用SpannableString 看看这个问题,看起来就是你要找的。 ***.com/q/28720117/14327871 @NongthonbamTonthoi 我可以这样做,但是如何将 id 设置为字符串的特定部分?这就是这里的问题,我不知道是否可以实现这样的目标 【参考方案1】:

使用RecyclerView 创建带有链接的TextView 列表。为了正确对齐,您可以使用flexbox-layout

build.gradle(:app)中添加依赖

dependencies 
    implementation 'com.google.android:flexbox:2.0.1'

并使用FlexboxLayoutManagerRecyclerView,如下所示:

val flexLayoutManager = FlexboxLayoutManager(activity)
flexLayoutManager.flexDirection = FlexDirection.ROW;
flexLayoutManager.justifyContent = JustifyContent.FLEX_START;
recyclerViewTextLinks!!.layoutManager = flexLayoutManager
val flexAdapter = FlexDemoAdapter(listOfTextLinks, onTextLinkClicked)  //onTextLinkClicked for handling link clicks
recyclerViewTextLinks!!.adapter = flexAdapter

【讨论】:

以上是关于同一个TextView中的多个id的主要内容,如果未能解决你的问题,请参考以下文章

同一个Textview组件中的多个文本方向

android 中多个TextView放在一个LinearLayout中,请问如何将TextView中的文字自动换行?或者修改布局实现

为 ListView 的多行中的多个 TextView 设置 onClickListener

如何动态更改多个TextView中的文本? [重复]

单击时如何使 TextView 闪烁其背景?

TextView 更改适用于使用 ListView 和 ArrayAdapter 的多个 TextView