首页 > 解决方案 > Android ListView 项目布局变化

问题描述

我有一个 ListView(将移至 RecyclerView),其 ListView Item XML 布局在 LinearLayout 中包含 3 个 TextView。我的用户偏好允许左手或右手使用。在这种情况下,我想更改项目布局文件中 TextViews 的顺序。

这里首选的设计模式是什么?我怎么做?

  1. 我是否要创建两个不同的项目 XML 布局文件,一个用于左侧,一个用于右侧?这似乎是在不同的 XML 布局文件中复制相同的 TextView 的重复工作;只是改变顺序。
  2. 我是否以编程方式更改代码中 TextViews 的顺序?如何?
  3. 还有其他我不知道的方法吗?

只是想学习并以正确的方式去做。

标签: androidandroid-layoutlistviewitem

解决方案


您可以尝试在一个 xml 布局中使用 2 组 TextView。改变他们的可见性将成为惯用左手或惯用右手的人的诀窍。但是,无论如何,这是观点的重复。

或者,您可以使用 ConstraintLayout 并以编程方式更改视图的 ConstraintSet,具体取决于选择的首选项。

val constrSet = ConstraintSet()
constrSet.clone(parentLayout)
constrSet.connect(textView1.id, ConstraintSet.END, textView2.id, ConstraintSet.START)
constrSet.applyTo(parentLayout)

推荐阅读