为Android手机和平板电脑创建不同的布局

时间:2014-06-06 04:35:24

标签: android landscape-portrait

这是一个基本的android问题。我有app需要为手机和平板电脑设置不同的屏幕。手机需要有一个ListView,平板电脑需要有一个GridView的项目。

我希望知道如何在不制作两个不同应用的情况下实现这一目标。

由于

4 个答案:

答案 0 :(得分:21)

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

我建议如果手机和平板电脑屏幕完全不同,你可以制作两个不同的apks并在Google Play上加载相同的ID。这样你的应用程序将重量轻,速度快。谷歌播放自动可以检测该应用程序是用于平板电脑还是手机。您不必担心这一点。

答案 1 :(得分:8)

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

作为一个非常简短的示例,layout-sw720dp(或layout-large for API level< 13)文件夹中的xml布局文件将用于超过720 dips宽的设备(即10&#34) ;平板电脑)。

在Android文档中查看Supporting Multiple ScreensProviding Resources

答案 2 :(得分:6)

检查出来:http://developer.android.com/guide/practices/screens_support.html

您无需制作两个单独的应用。

答案 3 :(得分:0)

以下是我为改变Recycler View"应用程序所做的工作:layoutManager"属性。由于您使用回收器视图使用列表和网格视图似乎是顺利滚动的最佳方式。

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

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

  5. 在&#34; layout-sw600dp&#34;文件夹布局文件,将GridLayoutManager设置为Recycler View属性。

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

  6. 不要忘记更改量程数,因为它默认为0,这与线性布局的输出相同。

    资源:

    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

相关问题