我正在尝试在图形布局编辑器中预览ListFragment
。由于它没有要预览的片段布局,我只是在里面创建了一个带有ListView
的xml,只是为了查看项目的外观,并使用其中一个默认项目布局设置预览列表内容 ,只是为了尝试。
问题是:
isInEditMode()
为真时我会做一些事情。有什么想法吗?
编辑:片段是ListFragment
,但我可以使用“临时”listview.xml布局。我想要的是一种查看我的CustomListItemView
内部列表视图的方法。在片段中,我将使用自定义适配器将它们放在那里;在布局编辑器中,我希望我可以从预览列表内容菜单中选择CustomListItemView
。
我不能只使用自定义项目的布局作为预览列表内容,因为它的根是<merge>
(我的自定义项目扩展为RelativeLayout
)。这可以通过将<merge>
更改为<RelativeLayout>
来解决。但是,此自定义项目视图会根据数据而变化,因此我希望通过使用isInEditMode()
工具来查看各种状态的预览。
如果没有临时listview.xml布局,所有这些都可以正常工作,那将是最好的,但这将成为一个功能请求。
现在我正在使用垂直LinearLayout
。
答案 0 :(得分:6)
我看一下,看起来答案是今天这是不可能的,因为有两个错误。
出于某种原因,如果ListView是布局的根元素,ListView预览不起作用,而不是嵌入在布局中。解决方法很简单;只需使用其他布局(如LinearLayout)将ListView包围起来,将ListView的layout_width和layout_height设置为match_parent。
出于某种原因,当具有ListView和自定义视图的布局包含在另一个布局中时,自定义列表项布局不起作用。我知道这曾经有用,所以它必须在某些时候出现故障,可能是我们从使用评论式元数据切换到工具命名空间元数据来记录要使用的布局。
我已提交此问题以跟踪工作:
http://code.google.com/p/android/issues/detail?id=36838
答案 1 :(得分:1)
你可以找到关于使用listfragment布局的有用的帖子,它不能解决你所有的问题,但至少你可以直接使用你将要使用的有效布局: