【问题标题】:Android how can I achieve a arrow based layout?Android 如何实现基于箭头的布局?
【发布时间】:2020-12-22 21:35:14
【问题描述】:

我想知道如何实现这样的基于箭头的布局:

您知道什么 Layout 正在使用此应用程序来实现该布局吗?这似乎是一种交错网格布局?或者也许正在使用库或自定义布局?我怎样才能实现类似的目标?

【问题讨论】:

  • 使用此图标 icons8.com/icon/pack/arrows/metro 。否则,您可以在 drawable 文件夹中的矢量图像中构建自定义箭头。
  • 尝试在开发者选项中打开“显示布局边界”。它不会解决您的问题,但它可能会为您提供解决方法的想法

标签: android android-recyclerview staggered-gridview staggeredgridlayout staggeredgridlayoutmanager


【解决方案1】:

这就是我将如何做这样的事情。

我做了一堆自定义视图。

自定义视图 #1: 口袋妖怪视图。 这是一个常规的约束布局或 CardView,其中包含所有用于显示 pokemon 的项目、它的名称以及所有其他内容。

自定义视图 #2 EvolutionPokeminView。 这是一个自定义约束布局,包含 PokemonView、Arrow ImageView(和下面的 TextView),以及将箭头放置在不同方向的辅助方法。

例如: setArrowDirection(int direction) \direction 是所有方向的某种枚举(top、topLeft、topRight..等

另一个辅助方法是 setArrorPosition, setArrowPosition(int方向)

然后您使用箭头方向方法将正确的箭头图像设置到 arrowImageView 中,并使用箭头位置方法使用ConstraintSet 以编程方式设置箭头相对于口袋妖怪图像的正确位置。

之后,您准备一些通用布局以用于不同的数据集并相应地填充它们。

要使这种方法奏效,您需要了解的事项。 如何在 Android 中制作自定义视图。 如何有效地使用 ConstraintLayout。 如何使用 ConstraintSet 以编程方式编辑 ConstraintLayout 约束。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 2014-01-17
    相关资源
    最近更新 更多