Android如何使用行和列跨度实现这种布局

时间:2019-03-27 12:21:37

标签: android listview android-recyclerview grid-layout staggered-gridview

enter image description here

enter image description here

要求:

  • 无论是否可见左视图,我都应该能够滚动整个视图(如果我在视图中的任何位置滚动,所有组件应一次滚动)。
  • 通过单击显示/隐藏左视图按钮,它应该能够隐藏或显示左视图。
  • 在单元格中(只有单元格不在左视图),具有展开/折叠功能(我可以增加/减少 单元格高度)
  • 如果我在设备设置应用中更改字体大小,那么它在这里也应该生效(因此支持动态字体大小)

1 个答案:

答案 0 :(得分:-1)

导航抽屉+回收站视图是一个很好的解决方案。

在导航抽屉中,您也可以只使用包含标题,左侧和RecyclerView的ConstraintLayout。

  

如果左视图是否可见,我应该能够滚动整个视图(如果我在视图中的任何位置滚动,所有组件应一次滚动)。

这将由回收者视图本身解决。

  

通过单击显示/隐藏左视图按钮,它应该能够隐藏或显示左视图。

在单击按钮时只需切换左视图的可见性即可,

public void toggleLeftViewVisible() {
    int visibility = leftView.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE;
    leftView.setVisibility(visibility);
}
  

在单元格中(只有单元格不在左侧),具有展开/折叠功能(我可以增加/减小单元格高度)

通过在回收站视图适配器内部添加单击侦听器(可能在按钮上或在视图本身上)来解决此问题。

  

如果我在设备设置应用中更改了字体大小,那么它在这里也应该生效(因此支持动态字体大小)

如果您执行正确的实现,Android应该会自动注意这一点。