android - 通用(平板电脑和手机)应用程序 - 如何最好地构建 - 多布局 xml 或显示/隐藏小部件?

标签 android android-layout tablet mobile-phones

我正在计划我的第一个真正的 Android 应用程序,我希望它成为一个通用应用程序(平板电脑和手机)。布局将由前一个 ListView 填充的三个 ListView (列表一始终具有相同的项目列表,列表二将根据列表一的选择填充,列表三将根据列表一和两个选择填充) .选择列表三中的项目后,将显示有关该项目的详细信息。仅供引用,数据位于 XML 文件(包含层次结构)中,详细信息是叶节点。

我计划有两种布局。对于平板电脑,我将在同一屏幕上显示所有三个 ListView 和详细信息。 For the phone, I'm going to have each list occupy the entire screen and when an item in selected, slide transition to the next list view (with nav at the top for going to the previous list as well as info on what the selection (s) 来自之前的列表)。选择第三个列表中的项目时,显示详细信息页面,该页面还将有一个按钮可以重新开始(即返回到第一个 ListView )。

我的平板电脑 View 工作得很好,因为它是最简单的(只有一个屏幕,没有转换)- 全部在 layout/main.xml 中。我还为不同尺寸的屏幕(布局、大布局、小布局、超大布局)提供了不同的布局,所有这些现在都具有完全相同的 main.xml。

那么,最后是我的问题......我如何使用相同的代码来填充列表,同时拥有不同的用户体验?我可以看到两个选项(请添加更多/更好的选项)

  1. 对于手机,我是否应该继续使用一个布局文件 (main.xml),将所有三个列表和详细信息放在一起,并通过幻灯片切换显示/隐藏小部件? (即最初只有第一个 ListView 可见,第二个 ListView 隐藏,第三个 ListView 隐藏,隐藏详细信息)

  2. 我应该为手机上的每个屏幕设置一个布局 xml(main.xml - 初始 ListView 、list2.xml、list3.xml 和 details.xml)吗?

要确定它是否是平板电脑,我打算使用来自 Google I/O 应用程序的代码
Developing an universal android application (phone and tablet)

编辑 (2011/11/29)
找到一些关于 Fragments 的很好的在线资源:
http://android-developers.blogspot.com/2011/02/android-30-fragments-api.html
http://portabledroid.wordpress.com/2011/06/22/25/
http://portabledroid.wordpress.com/2011/06/23/multi-platform-fragments-part-ii/
以及随附的视频:
http://www.youtube.com/watch?v=4BKlST82Dtg

最佳答案

您想在 supporting tablets and handsets 上阅读此文档, 但解决问题的关键是使用 fragments .

关于android - 通用(平板电脑和手机)应用程序 - 如何最好地构建 - 多布局 xml 或显示/隐藏小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8248374/

相关文章:

Android - 查看隐藏在 AppBarLayout 后面

android - Tegra 平板上的 NDK 调试

java - 突出显示正在单击的图像部分

Flutter 热重载不适用于平板电脑模拟器

android - findViewById 从膨胀布局返回 Null

java - 在 Android 上创建离线 map

android - 如何在 SimpleCursorAdapter 中使用自定义字体在 Searchable Dictionary App 的 ListView 中?

android - 在 RecyclerView 中单击项目后,不确定在哪里实现 parcelable ArrayList

java - 如何禁止在编辑文本中输入零后的数字?

android - 以编程方式设置相对布局中 EditText 和 TextView 的位置