Android手机被认为是“双窗格”布局

时间:2014-08-26 09:48:32

标签: android android-layout layout master-detail

我正在编写一个具有两种不同布局的应用程序:

  • 平板电脑的两个窗格(主屏幕细节)(屏幕超过820 dp)
  • 手机的单一窗格(主人+活动)(820 dp以下的屏幕)

我正在不同的设备上测试我的应用程序,我有不同的(和意外的)行为: 在三星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 下。

1 个答案:

答案 0 :(得分:1)

我认为你的大小与密度相混淆。你当然可以拥有一个高密度的小屏幕:这正是你的Nexus 5。如果您通过密度选择布局,您将在Nexus 5上获得双窗格布局,因为它的密度很高。

您需要确定屏幕大小的布局。

有关详细信息,请参阅Android docs,但您希望文件夹结构为values-large等。