——a little +
Udacity课程截图:
尽量保持宽而浅的布局,完整层级不能超过十级
SIZE:
small
normal
large
density:
ldpi
hdpi
xhdpi
xxhdpi
xxxhdpi
res下部分目录命令
res/layout
res/layout-sw600dp
res/layout-sw720dp
Supporting Multiple Screen
http://developer.android.com/guide/practices/screens_support.html#ConfigurationExamples
上面三个文件夹
sw:smallest width
layout/activity_main.xml | 对应一般的手机 |
---|---|
layout-sw600dp/activity_main.xml | sw大于等于600dp的设备 |
layout-sw720dp/activity_main.xml | sw大于等于720dp的设备 |
文件们
layout-sw600dp / activity_main.xml
多个Fragment拼成一个Activity(平板 tablet)一个fragment
<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
<FrameLayout android:id="@+id/weather_detail_container" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="4" />
layout / activity_main.xml 一个Fragment(手机)
一个fragment
<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" />
MainActivity中
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); boolean mTwoPane; //重要判断是否含有详情部分(tablet) if(findViewById(R.id.weather_detail_container) != null){ mTwoPane = true; if(savedInstanceState == null) { //如果savedInstanceState为null,则利用FragmentManager getSupportFragmentManager().beginTransaction().replace(R.id.weather_detail_container , new DetailFragment() , DETAILFRAGMENT_TAG).commit(); } } else{ mTwoPane = false; }