【问题标题】:Several android applications with same look&feel几个具有相同外观和感觉的安卓应用程序
【发布时间】:2022-01-15 15:56:32
【问题描述】:

我有以下情况:

两个(目前)简单的 android 应用程序。 我希望这些应用程序具有“共同的外观和感觉”:

  • 相同的标题
  • 页脚相同
  • 类似的滑动菜单
  • 类似喜欢的画面

所以我提取了库项目中的常用组件。 我创建了一个基本活动,其中包含通用页眉、页脚、菜单、收藏屏幕。

但我不确定是否可以通过继承基本活动和覆盖来添加“特定于应用程序的东西”。 它看起来像根据应用程序生成动态 UI...

也许基础活动的继承不是这样的。 可能是库中的一些预定义接口和特定应用程序中的实现。

有什么想法吗?

【问题讨论】:

  • 我建议创建简单的样式文件并跨多个应用程序复制样式。其他方法是创建 ui 库并使用所需的组件并在其他应用程序中实现它,而不是使用 android 组件使用您自己的组件
  • @ManojMohanty,是的,我的组件有一个 UI 库。这不是问题,没关系。但我不确定我对库中活动的想法以及应用程序中只有特定的 UI 是否可行。如果这不是 UI,我认为库中定义的接口和应用程序中的特定实现不会有问题...

标签: android user-interface android-activity


【解决方案1】:

您只需制作 1 个活动或片段,即可获得相同的外观。并且在您的 XML 中为每个布局制作 2 个不同的布局(页眉、页脚、滑动菜单很常见)。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <!-- Header Layout -->
    <!-- Footer Layout -->
    <!-- Menu Layout -->
    
    <!-- Layout 1 for app1 functionality -->
    <!-- Layout 2 for app2 functionality -->
</LinearLayout>

现在,在您重定向到活动的地方,传递一个额外的值来识别这是从哪一个打开的。

例如: 假设,你的普通类是这样的:

class Common(private val isFromApp1: Boolean) : AppCompatActivity() {
} 

在Common类检查的onCreate函数中:

if(isFromApp1)
     layout1.visibility = View.VISIBLE
else
     layout2.visibility = View.GONE

一个班级就可以处理所有事情,就是这样。

【讨论】:

  • 这意味着公共活动(在库中)应该知道使用该库公共活动的应用程序列表,对吧?
猜你喜欢
  • 2019-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
相关资源
最近更新 更多