我正在编写一个具有两种不同布局的应用程序:
我正在不同的设备上测试我的应用程序,我有不同的(和意外的)行为: 在三星Galaxy Tab 4 10''(1280x800)我得到了两个窗格布局 - 按预期;但是当我在我的 LG Nexus 5 (1920x1080)或 LG G2 Mini (960x540)上尝试时,我希望获得单一窗格布局,这些都不会发生,我仍然得到两个窗格布局。
在我的项目中,我有一个名为 values-w820p 的文件夹,其中包含文件 refs.xml - 如this指南中所述。
此外,我使用的活动检查方法 onCreate 上是否有两个窗格的空间 - 这是代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings_list_container);
//some creation code
if (findViewById(R.id.settings_detail_container) != null) {
Log.i("Two panes", "two panes");
mTwoPane = true;
//some two pane handling
}
}
哪里出错了? 为什么我不能在“小”屏幕上显示单一窗格?
编辑:已解决 解决方案是将“两个窗格”布局放在 layout-large 下,将“单个”布局放在 layout 下。
答案 0 :(得分:1)
我认为你的大小与密度相混淆。你当然可以拥有一个高密度的小屏幕:这正是你的Nexus 5。如果您通过密度选择布局,您将在Nexus 5上获得双窗格布局,因为它的密度很高。
您需要确定屏幕大小的布局。
有关详细信息,请参阅Android docs,但您希望文件夹结构为values-large
等。