gpt4 book ai didi

java - 为 XML 上的自定义 View 设置标签缩写

转载 作者:行者123 更新时间:2023-11-29 19:56:59 24 4
gpt4 key购买 nike

在我的应用程序中我扩展了 LinearLayoutRelativeLayout,所以每次我需要在 XML 中声明一个布局(你可能知道它是经常)我需要写一个长标签,以指向 View 的包。

所以 XML 文件看起来像这样:

<com.company.material.widget.LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<com.company.material.widget.RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/titlebar_height"
android:background="@color/primary"
android:orientation="horizontal">

<TextView
style="@style/Text.Field.Small"
android:id="@+id/form_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>

<Button
style="@style/Button.Main"
android:id="@+id/form_submit"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
</com.company.material.widget.RelativeLayout>

<com.company.essentials.view.FormView
android:id="@+id/formview"
android:layout_width="match_parent"
android:layout_height="match_parent">
...

这太困惑了!

有什么办法可以简化这个吗?喜欢 AppLinearLayout 而不是 com.company.material.widget.LinearLayout

提前致谢!

最佳答案

您可以将 View 类移动到 android.view包裹。这将允许您只写 <AppRelativeLayout />而不是 <com.company.material.widget.AppRelativeLayout /> ,因为不带包前缀的 View 标签名称是“自动完成”的 android.view包。

如果您不想将整个类移动到这个包中,您可以创建一个虚拟子类à la:

package android.view;

public class AppRelativeLayout extends com.company.material.widget.RelativeLayout {
// same constructors as super class
public AppRelativeLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
}

您只需确保不使用与 Android 框架已经使用的相同的类名,例如 RelativeLayout ,因为这会与现有 View 和布局名称发生冲突。这就是为什么我将上面的示例命名为 AppRelativeLayout .

关于java - 为 XML 上的自定义 View 设置标签缩写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36657593/

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