如何使用可组合函数垂直对齐文本Text
。有没有一种方法可以做到这一点,而不必添加另一个额外的视图来包含Text
.
textAlign
的参数只有Text
以下选项:
TextAlign.
我尝试过使用textAlign = TextAlign.Center
,但它只能水平居中。如何将其垂直居中而不将其包装在另一个视图中?
Text(
text = "Text",
modifier = Modifier.size(100.dp),
textAlign = TextAlign.Center
)
Run Code Online (Sandbox Code Playgroud)
结果:
我想要实现的目标:
android android-jetpack-compose android-jetpack-compose-layout android-compose-layout
我有一个从房间数据库更新的列表。我从 Room 收到更新后的数据作为新列表,然后将其传递给ListAdapter以submitList
获取更改的动画。
list.observe(viewLifecycleOwner, { updatedList ->
listAdapter.submitList(updatedList)
})
Run Code Online (Sandbox Code Playgroud)
现在,我想为同一个 RecyclerView 添加拖放功能。我尝试使用它来实现它ItemTouchHelper
。但是,notifyItemMoved()
由于 ListAdapter 通过 更新其内容,因此无法正常工作submitList()
。
override fun onMove(
recyclerView: RecyclerView,
viewHolder: RecyclerView.ViewHolder,
target: RecyclerView.ViewHolder
): Boolean {
val from = viewHolder.bindingAdapterPosition
val to = target.bindingAdapterPosition
val list = itemListAdapter.currentList.toMutableList()
Collections.swap(list, from, to)
// does not work for ListAdapter
// itemListAdapter.notifyItemMoved(from, to)
itemListAdapter.submitList(list)
return false
}
Run Code Online (Sandbox Code Playgroud)
拖放现在可以正常工作,但只有在缓慢拖动时,当拖动足够快时,我会得到不同且不一致的结果。
这可能是什么原因?为使用 ListAdapter 的 RecyclerView 实现拖放功能的最佳方法是什么?