我想知道如何让我的应用支持不同的屏幕尺寸和密度,包括平板电脑,关于布局。我在SO上找到了不同的答案,但我找不到最能解释这个问题的答案。
我已经把它包括在我的清单中了:
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true" />
根据this的答案,我应该创建多个布局文件夹,例如small,large,xlarge。
根据documentation我应该创建多个布局并使用大小限定符,例如sw<N>dp
。
如果我的应用需要同时支持手机和手机,那么哪种解决方案最好?
其他问题: 关于上述问题,我有一个带有项目清单的回收者视图。如果屏幕是纵向的,那么就有一个列表,如果屏幕是横向的,那么就是网格。
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);
}
但是,如果应用程序在平板电脑上以纵向模式使用,我希望这些项目在网格中按行排列,如果应用程序在平板电脑模式的平板电脑上使用,我希望这些项目能够在由4连续排序的网格中。我怎样才能做到这一点?
答案 0 :(得分:0)
为不同尺寸创建几个布局是古老而混乱的方法 您可以为每个布局和组件设置权重。
这是开始的好教程。
http://www.101apps.co.za/index.php/articles/using-android-s-layout-weight-attribute.html