[英]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.