【问题标题】:No preview of custom views on UI designer in EclipseEclipse 中的 UI 设计器上没有自定义视图的预览
【发布时间】:2013-08-08 07:07:07
【问题描述】:

背景

我一直在创建许多类型的自定义视图,通常我可以在 ADT 的 UI 设计器上很好地显示它们的预览。

最近,在更新到最新版本的 ADT ( 22.0.5.v201307292155--757759 ) 后,我看不到任何类型的自定义视图,即使是最简单的也看不到。

问题

现在,我确定可以很好地预览自定义视图,因为如果我创建一个新工作区并创建它们,我可以很好地看到它们。

问题是在当前的工作区中,它的项目有很多设置,我不断收到这个错误:

找不到以下类: - ...(更改为 ...,修复构建路径,编辑 XML,创建类)

其中“...”是自定义视图的类。

我还为我使用的每个自定义视图获得一个灰色矩形,Lint 也抱怨:

在项目中找不到布局文件中引用的类... 或图书馆

这很奇怪,因为我对 XML 中的自定义视图使用了正确的语法(而且我已经做了很多)。甚至拖放也无济于事。

这也很奇怪,因为 eclipse 可以找到类(使用 CTRL+单击 XML 标记可以直接找到正确的类),只是在查看时似乎找不到它们。

我也尝试卸载 ADT 并重新安装它,但没有帮助。我还尝试从 SDK 管理器中卸载并重新安装一些相关组件。没有任何帮助。

这是一个自定义视图的示例代码,它根本不能很好地显示:

public class CustomTextView extends TextView {

    public CustomTextView(Context context) {
        super(context);
    }

    public CustomTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
}

如您所见,这段代码没有什么特别之处。

问题

为什么会发生?我该如何解决?我可以将当​​前工作区的所有(我的意思是所有)设置复制到一个新的设置来解决它吗?

还有其他人有这个问题吗?是 ADT 错误吗?

注意:我不想重置工作区。它对其中的项目有太多的特殊设置。

【问题讨论】:

  • 你的意思是xml的Graphical Layout部分的预览吗?
  • @user2012 是的。你有时使用 isInEditMode 以防你的自定义视图无法显示,所以你放了假的东西。
  • @androiddeveloper:我没有这种问题。您可以在布局编辑器中发布行为类似的“简单”自定义视图的示例吗?
  • @TalKanel 正如我所写,即使是最简单的自定义视图也不会显示,但它仅适用于这个工作区。如果我使用全新的工作区,一切都会正常工作。例如,我现在发布了一个示例类,但任何你能想到的类都行不通。

标签: android adt android-custom-view gui-designer


【解决方案1】:

您是否也将 Eclipse 插件与 ADT 一起更新?

我知道这曾经发生在我身上,可能是我错过的。

如果实际平台 SDK 有更新,也许也会更新它们。您也可以尝试将预览版使用的 SDK 版本更改为最新或更早版本(这是预览版左上角的 android 图标,应该是 18)。

我知道如果您在文本上使用阴影,某些自定义视图不会呈现。然后,您只需在自定义视图中设置 isInEditMode 标志即可跳过这些。

最后下载一个带有 ADT 包的新 zip,然后重试 :)

希望这能有所帮助。

【讨论】:

  • 很遗憾,我已经尝试过这些东西。它与阴影无关,因为我什至在我编写的示例代码上测试过它(加上其他包含阴影的自定义视图,我已经使用了你提到的函数,并且在这个错误之前它们工作得很好)。我希望我可以仅针对这个问题恢复到 ADT&SDK 17。我有很多自定义视图,很难想象一切看起来如何......
  • 你可以恢复到我上面提到的sdk 17,你也可以从一个zip文件安装一个早期的ADT。
  • 等待它下载所需的所有内容不是要花很多时间吗?我已经知道 ADT&SDK 18 在我的家用电脑上运行良好,所以这可能会浪费大量时间。
  • 大约 400 兆字节。如果您的连接是拨号连接,则需要很长时间:)
【解决方案2】:

您是否已将其他工作区库包含到新项目中?例如。项目->属性->Android->库“添加”旧工作区项目。

【讨论】:

    猜你喜欢
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 2018-08-26
    • 2019-03-28
    • 1970-01-01
    • 2021-04-23
    • 2010-12-17
    相关资源
    最近更新 更多