【问题标题】:ListFragment or ListView preview in Layout Editor布局编辑器中的 ListFragment 或 ListView 预览
【发布时间】:2012-08-27 10:13:10
【问题描述】:

我正在尝试在图形布局编辑器中预览ListFragment。由于它没有要预览的片段布局,我只是创建了一个内部带有 ListView 的 xml,只是为了查看项目的外观,并使用默认项目布局之一设置 Preview List Content,只是试试看。

问题是:

  1. 预览中的列表是空的,无论我选择什么预览列表内容(我不知道我做错了什么,现在可以了)
  2. 我想预览我自己的自定义列表项视图,而不仅仅是一个布局,因为当isInEditMode() 为真时我会做一些事情。

有什么想法吗?

编辑:片段是ListFragment,但我可以使用“临时”listview.xml 布局。我想要的是一种查看带有我的CustomListItemView 的列表视图的方法。在片段中,我将使用自定义适配器将它们放在那里;在布局编辑器中,我希望我可以从 Preview List Content 菜单中选择 CustomListItemView

我不能只使用自定义项的布局作为预览列表内容,因为它的根是<merge>(我的自定义项扩展了RelativeLayout)。这可以通过暂时将<merge> 更改为<RelativeLayout> 来解决。但是,此自定义项目视图会根据数据而变化,因此我很想通过使用 isInEditMode() 工具查看各种状态的预览。

如果没有临时 listview.xml 布局,这一切都可以正常工作,但这是一个功能请求。

现在我正在使用垂直的LinearLayout

【问题讨论】:

  • 那么你有一个布局,其中包含一个标签,而Fragment包含一个ListView,并且每个列表项都应该使用自定义列表项布局,而列表项布局使用您自己的自定义视图?
  • @TorNorbye 感谢您光临!查看我的编辑

标签: android graphical-layout-editor


【解决方案1】:

我看了看,似乎答案是今天不可能,因为有两个错误。

  1. 由于某种原因,如果 ListView 是布局的根元素,而不是嵌入到布局中,则 ListView 预览不起作用。解决方法很简单;只需在 ListView 周围加上其他一些布局,例如 LinearLayout,将 ListView 的 layout_width 和 layout_height 设置为 match_parent。

  2. 由于某种原因,当具有 ListView 和自定义视图的布局包含到另一个布局中时,自定义列表项布局不起作用。我知道这曾经有效,所以它一定在某个时候坏了,可能是当我们从使用注释样式元数据切换到工具命名空间元数据来记录要使用的布局时。

我已提交此问题以跟踪工作:
http://code.google.com/p/android/issues/detail?id=36838

【讨论】:

  • (1) 确实解释了它“开始工作”的原因。那么,至少在理论上,是否有可能做类似tools:listitem="com.example.my.CustomItemView" 的事情?还是只接受布局?
  • 它只接受布局。请参阅android.googlesource.com/platform/sdk/+/… 的第 63 行。
【解决方案2】:

您可以在我的帖子中找到有用的关于使用列表片段布局的文章,它不会解决您的所有问题,但至少您可以直接使用您将要使用的有效布局:

ListFragment Layout from xml

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-07
    • 2013-11-18
    • 2020-04-21
    • 2014-09-10
    • 2018-04-22
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    相关资源
    最近更新 更多