【问题标题】:Creating different layout for android phone and tablet为 android 手机和平板电脑创建不同的布局
【发布时间】:2014-07-27 06:36:00
【问题描述】:

这是一个基本的安卓问题。我的应用程序需要为手机和平板电脑提供不同的屏幕设计。手机需要有一个 ListView,而平板电脑需要有一个 GridView 的项目。

我想知道如何在不制作两个不同应用的情况下做到这一点。

谢谢

【问题讨论】:

  • 使用“主/明细流”模板创建一个新项目。此模板创建一个在移动设备或平板电脑上运行的应用程序(分析项目以了解模板如何执行此操作)。然后修改布局以满足您的要求(将平板电脑布局更改为使用网格而不是两个布局,或其他)

标签: android landscape-portrait


【解决方案1】:

这是我为更改 Recycler 视图的“app:layoutManager”属性所做的相同操作。由于您使用的是列表和网格视图,因此使用回收站视图似乎是平滑滚动的最佳方式。

  1. 在 res "layout-sw600dp" 中创建一个文件夹。
  2. 将布局文件复制到此文件夹。
  3. 在布局文件夹下的原始布局文件中,设置线性布局管理器为布局管理器属性。

    <android.support.v7.widget.RecyclerView app:layoutManager="android.support.v7.widget.LinearLayoutManager"/>

  4. 在“layout-sw600dp”文件夹布局文件中,设置GridLayoutManager为Recycler View属性。

    <android.support.v7.widget.RecyclerView app:layoutManager="android.support.v7.widget.GridLayoutManager"/>

不要忘记更改跨度计数,因为它默认为 0,这将与 liner 布局的输出相同。

资源:

  1. How to set RecyclerView app:layoutManager="" from XML?

  2. https://medium.com/google-developers/building-a-responsive-ui-in-android-7dc7e4efcbb3

  3. https://developer.android.com/training/multiscreen/screensizes.html

【讨论】:

    【解决方案2】:

    基本上,您必须为 android 手机和平板电脑制作不同的布局。 Android 足够聪明,可以区分。例如,对于大屏幕,您可以创建一个新的文件夹名称 Layout-large。并将您的平板电脑 xml 放入其中。 Android 将从这里选择 xml,如果是手机,它将从简单的布局文件夹中选择。 可用于提供特定大小资源的配置限定符有 small、normal、large 和 xlarge。例如,超大屏幕的布局应该放在 layout-xlarge/ 中。

    如果手机和平板电脑的屏幕完全不同,我建议您可以制作两个不同的 apk 并在 google play 上加载相同的 ID。这样,您的应用程序将重量轻且速度快。 Google play 会自动检测到该应用程序是用于平板电脑或手机的。您不必担心。

    【讨论】:

      【解决方案3】:

      您基本上需要为不同的限定符提供不同的布局文件。

      作为一个非常简短的示例,放置在layout-sw720dp(或 API 级别 layout-large)文件夹中的 xml 布局文件将用于超过 720 dips 宽度的设备(即 10" 平板电脑)。

      在 Android 文档中查看 Supporting Multiple Screens 和 Providing Resources。

      【讨论】:

        【解决方案4】:

        看看这个:http://developer.android.com/guide/practices/screens_support.html

        您不需要制作两个单独的应用程序。

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-20
        • 1970-01-01
        • 2021-03-06
        • 1970-01-01
        相关资源
        最近更新 更多