gpt4 book ai didi

Android 膨胀 View

转载 作者:行者123 更新时间:2023-11-29 16:17:50 28 4
gpt4 key购买 nike

这个问题很难尝试和表述,但我会尽力而为。

基本上,我有一个应用程序,我想将代码拆分得更多。为了尝试解释这一点,我将举一个我的屏幕示例。

在我的主屏幕上,我有一个标题、用户详细信息、余额、下一个账单详细信息和使用详细信息。我想将这些部分中的每一个分成他们自己的观点。所以我在我的主 XML 文件中有 5 个不同的 RelativeLayouts,就像这样

<RelativeLayout android:orientation="vertical"
android:layout_below="@+id/title" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/layout1">


</RelativeLayout>

我想在主屏幕上拥有的每个功能都有一个。如您所见,我还将每个布局设置在前一个布局的下方,因此顺序为标题、布局 1、布局 2、布局 3、布局 4。 (我这样做的原因是,我希望每个布局都可以互换,即我可以删除布局 2,然后顺序为标题、布局 1、布局 3、布局 4,因为我可能不需要第二个布局,具体取决于应用程序)

所以在我的主要 Activity 类中,我调用了每个布局。

    layoutTitle = (RelativeLayout) findViewById(R.id.title);
layout1 = (RelativeLayout) findViewById(R.id.layout1);
layout2 = (RelativeLayout) findViewById(R.id.layout2);
layout3 = (RelativeLayout) findViewById(R.id.layout3);
layout4 = (RelativeLayout) findViewById(R.id.layout4);

然后我像这样使用布局充气器

View view;
LayoutInflater inflater = (LayoutInflater) getBaseContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.userdata, null);

为我在 xml 文件中定义的每个布局设置布局。

我想知道的是,是否可以膨胀另一个 Activity 而不是 XML 文件?我问这个的原因是,我说主屏幕的每个功能都由标题、用户详细信息、余额等组成,我对每个功能都有一个 Activity 。这些功能中的每一个都有我设计的自定义功能,例如动画等。如果我只是简单地扩展这些 xml 文件,那么我将无法访问其中的小部件,因此我无法从 Java 设置我需要的功能.

如果我能够膨胀另一个 Activity ,那么这就不是问题,因为我会为 Activity 中的每个功能设置功能,然后只膨胀那个类。

我希望我的问题很清楚,如果没有,我可以扩展您不确定的任何领域。

非常感谢任何帮助!!

编辑:如果无法膨胀类,那么您是否可以推荐任何其他方法来解决我的问题?

最佳答案

我和你做的一模一样

我在我的 Java Activity 中使用组合 来实现我的 Activity 之间的功能共享。我将 Activity 视为“上下文”,而不是我页面中被复制的部分。因此,当我在某个上下文(一个 Activity )中时,我会显示具有特定参数的布局 1、布局 2 和布局 3,以及取决于该 Activity 的特定内容。在另一个 Activity 中,布局 1、2 或 3 可能不同,但它们在我的屏幕上始终处于相同位置。

我通过 View 使用组合:我所有的 Activity 都有一个父类(super class)(你可以随意调用它,比如 ActivityWithCustomLayout,它包含我所有的布局作为类成员(如 ViewGroup)。它们是 protected ,因此每个变量 layout1layout2layout3 都可用于该父类(super class)的所有子类 Activity 。

在进行特定 Activity 时,我在 onCreate 方法上填充每个布局:

layout1.addView(...something inflated from an XML that depends on that specific activity...);
layout2.addView(...same principle...);

所以实际上我所有的 XML 布局都是 Activity 的“部分”,我在运行时将其扩展到 View 中,然后在需要时动态添加到我的 Activity 中。

你是对的,这些解释并不容易:)


如果您的目标是 Android >= Honeycomb(包括 ICS),那么请查看 Fragment框架,它可能是实现所有这些的更简单的方法(还没有看过)。

关于Android 膨胀 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8475554/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com