Android ListView项目布局的变化

问题描述 投票:0回答:2

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

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

  1. 我是否创建两个不同的Item XML布局文件,一个用于左手,一个用于右手?这似乎是重复的工作,因为在不同的XML布局文件中复制了相同的TextView。只是更改顺序。
  2. 我是否以编程方式更改代码中TextView的顺序?怎么样?
  3. 还有其他我不知道的方法吗?

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

android android-layout listviewitem
2个回答
1
投票

您可以尝试在一个xml布局中拥有两组TextView。更改它们的可见性将成为惯用左手或惯用右手的人的窍门。但是,无论如何,这是重复的观点。

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

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

0
投票

Sandi提到的重复帖子非常轻松地完成了我想要的事情,并且没有任何XML文件或代码的重复以重新排列顺序。感谢所有回应并让我来到这里。我只是想确保我发布了对我来说容易工作的内容。

我有一个带有两个不同ListView的TAB,每个都有自己的ListItem XML布局,这在主布局和每个ListItem布局的TabFragment.java的onCreateView中完美地颠倒了顺序!

    // Inflate this Tab's checklist XML
    root = inflater.inflate(R.layout.tab_fragment, container, false);
    if (leftHanded) {
        LinearLayout linearLayout = root.findViewById(R.id.tabLinearLayout);
        linearLayout.setLayoutDirection(LinearLayout.LAYOUT_DIRECTION_RTL);
    }
© www.soinside.com 2019 - 2024. All rights reserved.