【问题标题】:How to add layout from xml to Extended FrameLayout Android?如何将布局从 xml 添加到 Extended FrameLayout Android?
【发布时间】:2011-03-14 11:53:45
【问题描述】:

我有一个名为NoteView 的自定义类,它扩展了FrameLayout。以前,我刚刚使用股票 LinearLayout 并且已经构建了一个 XML 布局,我想通过将整个层次结构(以及一些其他覆盖视图,这就是我需要框架布局的原因)添加到 NoteView 来重用。

问题是我不知道如何扩展 XML 并将其从 NoteView 类中添加到 NoteView 中。我可以在初始化完成后添加它,但我希望能够扩展该层次结构并在我的 NoteView 被实例化或从 XML 扩展时自动添加它。

如何通过在 NoteView 类本身中添加 XML 布局来填充我的扩展 FrameLayout

【问题讨论】:

    标签: android layout user-interface views


    【解决方案1】:

    试试LayoutInflater

    LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    LinearLayout myView = (LinearLayout) inflater.inflate(R.layout.my_layout, null);
    frameLayout.addChild(myView);
    

    在此处查看LayoutInflater 的文档:http://d.android.com/reference/android/view/LayoutInflater.html

    【讨论】:

    • 我试过了,但一开始没有用。我只是意识到我将我的顶级视图投射到导致它崩溃的错误类。这整个问题是一个红鲱鱼。 :)
    • FrameLayout 没有 addChild(...) 方法。你的意思是addView(View child)
    • 当然它叫addView(View child)。在直接扩展类(扩展 FrameLayout)中,您可以在构造函数中添加它:this.addView(myView)
    猜你喜欢
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多