首页 > 解决方案 > 如图所示,如何在 android java 中实现自定义导航栏

问题描述

这是我想在我的应用程序中为底部导航栏实现的设计。初始状态

单击另一个图标后,我希望它如图所示进行更改:单击后

我是android新手,到目前为止我只知道底部导航栏的基本实现。我无法理解如何实现这一点。

标签: javaandroiduser-interfacebottomnavigationview

解决方案


你有两个选择。要么完全从头开始构建你自己的小部件,要么使用现有的布局和小部件来构建它。

构建您自己的小部件 创建您自己的小部件可能会非常具有挑战性,具体取决于您要完成的任务。您必须创建一个扩展 View 或其任何其他子类的类。例如,您可能从 LinearLayout 扩展,因为它可能提供您正在寻找的一些功能。
你必须至少

  • 覆盖触摸事件以创建您自己的触摸处理
  • 覆盖绘制方法以绘制您的自定义 ui
  • 覆盖布局和测量方法以在调整大小等时调整布局行为。

这可能会变得非常复杂,所以我不建议初学者使用它。虽然它允许完全自定义您的小部件,但它也带来了更高的自我造成错误或不良行为的风险。

使用布局和小 部件 使用现有的小部件和布局创建这样的小部件很容易,但在实现方面有更多限制。您将创建一个单独的布局 xml 文件,您可以在其中创建小部件的视觉效果。对于功能部分,您将编写某种 ui-controller 类,该类为该布局实现所有必需的功能等,并且可以连接到它(使用视图的现有回调)

  • 在布局中使用 ID 来访问应该具有特殊行为的不同组件
  • 实现 clicklistener 或 touchlistener 来处理特定的交互事件
  • 对于动画,Android 提供了一个 API
  • 将您的小部件布局 xml 包含到任何其他布局 xml 中或单独对其进行扩充。然后添加你的 ui 控制器

Android 已经提供了广泛的布局和小部件,可用于完成您正在寻找的内容。在尝试编写自己的之前,我会利用这些


推荐阅读