繁体   English   中英

在布局方面支持不同的屏幕尺寸和密度

[英]Supporting different screen sizes and densities in regards to layout

我想知道如何让我的应用程序支持有关布局的不同屏幕尺寸和密度,包括平板电脑。 我在SO上找到了不同的答案,但是找不到能最好地解释该问题的答案。

我已经将其包含在清单中:

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:xlargeScreens="true" />

根据答案,我应该创建多个布局文件夹,例如small,large,xlarge。

根据文档,我应该创建多个布局并使用大小限定符,例如sw<N>dp

如果我的应用程序需要同时支持电话和Tablt,哪种方法是最好的解决方案?

附加问题:关于上述问题,我有一个带有物品清单的回收站视图。 如果屏幕是纵向屏幕,则有一个列表;如果屏幕是横向屏幕,则有网格。

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
        LinearLayoutManager manager = new LinearLayoutManager(getContext());
        mBinder.rvHistoryList.setLayoutManager(manager);
    } else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
        GridLayoutManager manager = new GridLayoutManager(getContext(), 2);
        mBinder.rvHistoryList.setLayoutManager(manager);
    }

但是,如果该应用程序在平板电脑上以纵向模式使用,我希望这些项目以连续2的顺序排列在网格中;如果该应用程序在平板电脑上以横向模式使用,我希望这些项目位于一个网格连续按4排序。 我该如何实现?

创建几个不同大小的布局是一种古老而令人困惑的方法。
您可以为每个布局和组件设置权重。

这是一个很好的入门教程。

http://www.101apps.co.za/index.php/articles/using-android-s-layout-weight-attribute.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM