平板电脑在setContentView中的错误布局

时间:2016-04-01 11:52:38

标签: android android-layout

我正在开发一款玩具应用程序,该应用程序具有适用于手机和平板电脑的不同布局文件,但在平板电脑模式下,它不会在layout-sw600dp文件夹中使用正确的布局。这是我的文件内容:

activity_main.xml文件夹中的

layout-sw600dp

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:baselineAligned="false"
    android:divider="?android:attr/dividerHorizontal"
    android:orientation="horizontal"
    tools:context="com.example.android.sunshine.app.MainActivity">

    <!--
    This layout is a two-pane layout for the Items master/detail flow.
    -->

    <fragment
        android:id="@+id/fragment_forecast"
        android:name="com.example.android.sunshine.app.ForecastFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2"
        tools:layout="@android:layout/list_content" />

    <FrameLayout
        android:id="@+id/weather_detail_container"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="4" />

</LinearLayout> 
activity_main.xml文件夹中的

layout

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/fragment_forecast"
    android:name="com.example.android.sunshine.app.ForecastFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    tools:context="com.example.android.sunshine.app.ForecastFragment"
    tools:layout="@android:layout/list_content" />
onCreate中的

MainActivity.java方法:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mLocation = Utility.getPreferredLocation(this);
    setContentView(R.layout.activity_main);

    if(findViewById(R.id.weather_detail_container) != null)
    {
        mTwoPane = true;

        if(savedInstanceState == null)
        {
            getSupportFragmentManager().beginTransaction().replace(R.id.weather_detail_container, new DetailActivityFragment(),DETAILFRAGMENT_TAG).commit();
        }
    }
    else
    {
        mTwoPane = false;
    }
}

我正在使用emulated Nexus 10来测试应用。当应用程序启动时,它会显示单一窗格布局,与电话视图相同。我不知道这里出了什么问题。

我也试过了emulated Nexus 7,但问题仍然存在。

令人惊讶的是,我尝试使用Samsung Galaxy Note 10.1 API 16 real device并且布局完美无缺。模拟设备是否存在导致问题的任何问题?

修改

我怀疑模拟设备出了问题,并尝试emulate Samsung Galaxy Note 10.1 API 16。布局在设备的模拟版本上也能正常工作。

我还尝试将API 16emulated Nexus 7一起使用,但我仍然获得了单一窗格布局。使用Nexus 7 & 10文件夹的layout-sw600dp是否有问题?

1 个答案:

答案 0 :(得分:0)

是的,这是模拟器的问题。

直接解决方案 - 不要使用Nexus皮肤。

我测试了各种配置:Nexus 9应该可以正常工作。

在论坛中几乎所有Android课程(主题:片段,双窗格模式)中都可以找到有关此问题的抱怨。

所以问题:12

Android问题跟踪器中有一些问题:12

问题很严重,没有官方回复。