RecyclerView错误的手动定位

时间:2018-09-15 17:12:57

标签: android

我正在尝试将RecyclerView中的某些项目与其中的其他项目对齐。但是,似乎我所有的尝试都失败了。

我要具体执行的操作:我有几个视图作为标题使用各种方法进行了对齐*,然后在它下面的RecyclerView在其同一父视图中进行拉伸宽度,会使视图膨胀。

问题:RecyclerView内部的项目与外部的项目无法完全对齐。 知道:我对父项和项使用相同的布局!而且知道我用于标题项目的水平对齐的任何方法,对于为RecyclerView膨胀的每个项目都是完全一样的。并且知道这两个项目具有相同的属性(它们是TextView,相同的大小,宽度,高度等)

我尝试了哪些方法?对于两个方面(上下),我都尝试了以下方法:

  1. 对父级和项目布局使用ConstraintLayout,并在父级的开始和结束之间拉伸项目,然后使用约束比率将其精确定位在我想要的位置。标头的结果与RecyclerView持有者的结果不同。
  2. 使用TableLayout时,其子项在整个宽度上伸展,相同的列数,相同的伸展度,结果仍然不同,而不是完美像素。
  3. 完全按照我想要的方式放置标题视图,但根本不使用任何Android布局“方法”,而是稍后在适配器内部使用getX()和setX()(使用.post(),以便确保位置正确)通货膨胀后),并且仍然放置相同的错误位置。

我想念什么?当我指定孩子应该为match_parent时,是否应该让RecyclerView膨胀整个宽度的孩子?我尝试调试标题和视图持有人的X值,它们是相同的,但我的眼睛看到了不同的东西。我将其延迟了几毫秒,但这并没有改变任何事情。

1 个答案:

答案 0 :(得分:0)

因此,问题出在我使用的任何方法上,如果TextView的宽度为wrap_content,它将始终适合其中的单词。解决方案是将宽度设置为0dp,并让父级ViewGroup平均平衡所有内容。在我的情况下,我使用了TableLayout